home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-10-01 | 210.4 KB | 4,968 lines |
-
-
-
- Anarchy Road Software Presents:
-
- Falcon CBCS - An Amiga Opus Clone
-
-
- "Bob's Favourite CBCS"
- "The CBCS with Fahrvergnügen"
-
-
- Copyright © 1988-91, by Brian Fehdrau.
- All rights reserved.
-
-
- Operator's Manual, First Draft
- 01-Oct-91
-
-
- IMPORTANT
- =========
-
- As you might have inferred from the title, this is a *first draft*. It
- should contain all information required to use all aspects of the program,
- because it was created by walking through the source code and making
- generous notes, and then converting that into real English text. However,
- chances are that some parts will be unclear, especially since the month it
- took me to work all this out introduced no shortage of inconsistent writing
- styles and formats. Also, most information will occur only once, and either
- some redundancy or a See-Also note here and there is required in order to
- make it easier to find certain information. Therefore I would appreciate
- notification of sections which are difficult to find or understand.
- Sections might also be in an weird order, meaning that they should, but may
- not, follow each other in a logical fashion. So if you've got a better
- order for them, let me know.
-
-
-
- Some Quick Information About DemoWare, Distribution and Me
- ==========================================================
-
- What the zark is DemoWare?
- --------------------------
- It's obvious, really. It's a lot like ShareWare. You can use what you've
- got for as long as you want, but if you use it for long enough, then you
- really ought to consider the effort required to create this program and
- register it. The difference with DemoWare is that there's another incentive
- besides guilt. In Falcon's case, this incentive to send in your fee and
- register your copy is a 50K limit on file transfers. Meaning, a person
- cannot transfer a single file larger than 50K, or a batch of files which
- total more than 50K. The first file could not be downloaded at all unless
- it can be broken up, and the second group would have to be done in two or
- more downloads. Similarly so for uploads. Note that the limit is per
- *transfer*, not per call.
-
- Some people would call this CrippleWare, but I see a difference. Generally,
- CrippleWare is designed so that it cannot be used easily in a normal
- situation, and it often has certain key features disabled completely. My
- variety of DemoWare allows normal operation and includes all features, with
- one key feature limited but not disabled, so that a person may demo the
- program and that feature to see if they want to register. Hell, if they can
- get along without full-sized transfers, they can run the unregistered
- version and forget all about a certain starving programmer.
-
- If you do wish to register, there should be a file called "Registration.txt"
- in your archive which contains information on how to register a form to fill
- out, and an address to send it to.
-
-
- Distribution
- ------------
- The two archives Falcon comes in are freely distributable, with the
- exception that nobody may make any profit from them (short, perhaps, of a
- small disk copying fee). The archives may be placed on any BBS or other
- online service that does not claim any rights over them, as Compu$erve has
- been known to do. They may be placed in disk collections (such as the Fred
- Fish disks) or users' group disks, subject to the non-profit limitation
- mentioned above. The archives themselves are not to be altered, meaning that
- no files are to be removed or added. I would prefer that the archiving
- method not be changed, but I see no point in prohibiting it. Distribution
- of the unaltered contents of the archives on a disk collection would be
- okay.
-
- If the form of distribution you wish to use does not not fall within the
- above guideline, or falls on the wrong side of them, talk to me and we might
- work something out. I'm not totally unreasonable.
-
-
- Where to Find Me
- ----------------
- I can be reached through FidoNet technology at either 1:140/22@FidoNet or
- 1:140/22.2@FidoNet. The first is my boss and the second is me, and either
- will get to me. I can also be reached through the Internet address
- bf@weyr.fidonet.org. Also, if you're going to use an Internet address, it
- may be quicker to use fehdr460@skdad.usask.ca. That will only be available
- until some time in December 1991, which is when my CMPT 460 class ends. I
- will probably have a new account in January, as fehdr398@skdad.usask.ca.
- Blame this on the brain-dead system of handing out undergrad accounts at the
- University of Saskatchewan. Snail-Mail me at P.O. Box 7635 / Saskatoon, SK /
- Canada / S7K 4R4.
-
-
-
- Table of Contents
- =================
-
- 1. Setting Up
- What You Will Need
- 2. Running the Program
- 3. Waiting For a Call
- 4. Logging In
- New Users
- 5. General BBS Usage
- "More [Y,n?]" Prompts
- Local Menus
- Line Editing and Command History
- Other (Non-Prompt) Key Commands
- Command Stacking
- Yelling with the Sysop
- 6. BBS Menus
- Main Menu
- Message Menu
- Reading a Message
- The Prompt
- File Menu
- Change Menu
- Edit Menu
- Subop Menu
- Librarian Menu
- Sysop Menu
- User Edit Menu
- 7. Entering and Editing a Message
- Starting a Message
- Entering a FidoNet Address
- Saving a Message
- The Editors Themselves
- LORE ("Line ORiented Editor")
- FRED ("Falcon's Rapid EDitor")
- 8. The Goodbye (Logoff) Sequence
- 9. XPR (eXternal PRotocol) File Transfers
- 10. FTerm
- Special Keys
- Transfers
- In Case of Problems with Display Positioning
- The Review Buffer
- File Requester
- Dial Directory
- Dialer
- 11. Configuration Files
- falcon.cfg
- msgareas.bbs
- fileareas.bbs
- menus.bbs
- sched.bbs
- term.bbs
- 12. Configurable Menus
- How to Make a New Menu
- Customizing Menus
- GOTO
- NIL, CON, and RAW
- BATCH
- GOODBYE
- MACRO
- Arguments
- Note on Help Files
- What Kinds of Programs to Use and What Kinds Not to Use
- Warnings
- Suggestion
- Notes About DLG Doors
- Sample External Menu
- 13. Batch File
- 14. Suggestions and Hints
- 15. Miscellaneous/Technical Information
- Workbench/KickStart 2.0
- Overlaid vs. Pure Executables
- bf.library
- Using a Nodelist
- Refreshing the Display
- Editing File Lists
- The Quote File
- The Log File
- Text Files
- Help Files
- The Numeric Keypad
- Remote VT100 Keys
- ANSI Used in Output
- Those "stat.dat" Files and the "systemstat.dat" File
- 16. FidoNet-Specific Technical Information
- Quoting
- Netmail/Echomail Kludge/Control Lines
- Notes on Kludges
- Datestamps
- 17. Yet to Come
- 18. ICK! BUGS! (And other caveats)
-
-
- 1. Setting Up
- ==============
-
- First, you want to get the files you are provided with into the proper
- places. Therefore, change to the directory you want your BBS in, and
- unarchive the files. This will provide you, after a few more DOS commands,
- with a bare-bones BBS which should be ready-to-run. You will make changes
- later.
-
- Here's a rough idea of what you should be doing in your shell. Note that
- you should replace "BBS:" with the directory you want to put the BBS in, and
- "ARCHIVES:" with wherever you put the Falcon archives. Also, where you see
- "lhunarc", use your favourite unarchive, but be sure it extracts with
- extended filenames and paths.
-
- 1> cd BBS:
-
- 1> lhunarc ARCHIVES:Falconxxx-2 ; extract Falcon, bf.library,
- ; support files and paths
-
- 1> makedir msgs ; \
- 1> makedir msgs/gen ; |_ Make the directories for
- 1> makedir files ; | mail and files (for now)
- 1> makedir files/gen ; /
-
- 1> makedir logs ; optional, for storing old log files
-
- 1> makedir FONTS:IBM
- 1> copy IBM.font FONTS: ; you should probably use my IBM.font
- 1> copy IBM FONTS:IBM ; no one says you CAN'T use another's
- 1> delete IBM.font
- 1> delete IBM all
-
- 1> copy bf.library LIBS:
- 1> delete bf.library
-
- 1> list LIBS:diskfont.library ; and if it's not there, put it there
-
- You must also be sure that "T:" is assigned somewhere. Falcon occasionally
- keeps some files in "T:". Notice that that is "T:" and not "T/". You must
- use the DOS Assign command to assign the volume "T:" to where you want your
- temporary directory. There is one exception: if the root directory of your
- boot disk had a "T" directory in it, "T:" will have been assigned there
- automatically, although you may still want to move it. I suggest a "T"
- directory on the RAM disk. At any rate, it should be on a reasonably quick
- device, since it is used, among other things, to store the cut & paste
- buffer in FRED.
-
- You can run the program as it is now, but I strongly suggest you make a few
- important changes to the configuration right now, before you run it:
-
- In Falcon.cfg:
-
- NAME "your BBS's name"
- SYSOP "your name"
- MAXBAUD your_modem's_maximum_baudrate
-
- You may also have to change some modem strings, depending on your
- modem. Consult Falcon.cfg documentation for more information.
-
- Text files you will want to personalize, sooner or later:
-
- welcome1.bbs
- welcome2.bbs
- bulletin.bbs
- newuser.bbs
- editorial.bbs
- yell.bbs
- warning.bbs
- logoff.bbs
-
- To create the userlist, just log in with the name you put in the SYSOP field
- of Falcon.cfg. Falcon will consider that to be a special case and give you
- SYSOP access (you'll know if this works, since Falcon will tell you), so
- make sure you do this before some other user thinks of it! You should be
- able to get by with that. The Sysop Menu is available as "!" from the Main
- Menu, and the User Edit Menu is "E" from there. When you finished looking
- around, you'll probably want to come back to this document. Meanwhile,
- I'm going to go get a glass of Coke Classic.
-
-
- What You Will Need
- ------------------
- This is a short but hopefully complete list of the files you should have.
- Files with an asterisk are what I figure you'll need for a FidoNet system if
- you should go that far (thinking in terms of a point, as I've never run a
- node myself). Files in square brackets are optional.
-
- FONTS:
- IBM.font
- IBM/8
- IBM/12
-
- LIBS:
- bf.library
- diskfont.library
- [xpr#?.library]
- *[traplist.library]
-
- DEVS:
- serial.device
-
- Anywhere in your command paths, including the current directory:
- Falcon
- *(an archiver compatible with your boss' archiver)
- *FExport/FImport or CM (ConfMail) and possibly oMMM
- *TrapDoor or Welmat
-
- *The Roof A special shell for (FidoNet) BBSs, which I have little
- experience with but which looks like a promising
- replacement for the ARP shell I used in my doomed fbatch.
-
- The current directory:
- Falcon.cfg Or in S: or Falcon: or user-specified path/name
- *TrapDoor.cfg Or in user-specified path/name
- *FastPoint.cfg Or in user-specified path/name
- Could instead be a ConfMail and/or oMMM config file
-
- CONFIGDIR ???DIRs are set in Falcon.cfg
- english.bbs
- msgareas.bbs
- fileareas.bbs
- term.bbs
- [sched.bbs]
-
- USERDIR
- user.bbs Actually, this will be created by Falcon)
-
- (Note: .?bs means either .bbs and/or .gbs)
- TEXTDIR
- welcome1.bbs Intro file, shown before name prompt
- welcome2.?bs First file shown after password prompt
- [bulletin*.?bs] Shown after welcome2.bbs. may be numbered, starting
- with 1, in unbroken ascending order--Falcon stops
- looking after it doesn't find one.
- newuser.bbs Shown to new users when they sign up
- quotes.bbs Quote file
- [editorial.?bs] file for E)ditorial command)
- [yell.?bs] Shown if yell not available (if file not present,
- prg says "Yell is turned off right now.")
- [msgarealist.?bs] Shown in lieu of msg A)rea list
- [filearealist.?bs] Shown in lieu of file A)rea list
- warning.?bs File shown before asking for area passwords
- [logoff.?bs] Shown at logoff (bbs/gbs)
-
- HELPDIR
- changehelp.bbs These are not normal text files. See the section
- edithelp.bbs on help files for more information.
- filehelp.bbs
- mainhelp.bbs
- msghelp.bbs
- useredithelp.bbs
- sysophelp.bbs
- subophelp.bbs
- librarianhelp.bbs
-
- lorehelp.bbs These are normal text files.
- keyhelp.bbs
- longhelp.bbs
-
-
- KEYDIR
- [falcon.key] Only registered users will have/need this
-
-
-
- 2. Running the Program
- =======================
-
- Normally, to run falcon, you'd do just that: "run falcon". However, there
- are some command line options:
-
- -t ........ Tiny mode toggle. Useful if you have Falcon configured to
- start up in tiny mode
- -l ........ Interlace toggle. Not all that useful, really.
- -f ........ Go straight to FTerm
- -b <baud>.. Spawn at this baud rate
- -h ........ Hang up in spawned session, instead of letting calling
- program do it.
- -? ........ Help (a list of options similar to this one)
-
- Otherwise, if the argument is not an option, it will be used as the filename
- for falcon.cfg instead of the one used by default, ie.:
-
- "run falcon CONFIG:falcon.cfg"
-
- When Falcon exits, normally the DOS errorlevel will be set to 0. However,
- if messages have been entered in an echo or matrix area, appropriate error-
- levels will be returned, and an error will return yet another number. See
- the documentation for Falcon.cfg for more information on errorlevels.
-
- On top of the DOS errorlevels, Falcon returns codes in an environment
- variable, which we'll call "fret" for convenience (since that's the default
- name for it). This will be set to "error" if the program couldn't run
- successfully for some reason. Otherwise, it could be set to "exit" when the
- program exits on request, an event name if it exits due to one, or "return"
- if it was spawned.
-
- Falcon does not need a special stack size. It does not use much. However,
- to be safe, I call the stack-checking routine whenever the user switches BBS
- menus. This will catch any overflows, since Manx looks at the lower bound
- of the stack to see if a special value it puts there at run-time has been
- overwritten.
-
-
-
- 3. Waiting for a call
- ======================
-
- When the system has finished initializing the modem, it will start waiting for
- the phone to ring. At this point, there will also be a prompt, which will
- accept commands to go to the T)erm, to Q)uit, to C)onnect locally, or to
- Connect as the S)ysop (which pre-enters the sysop's name). There is also an
- invisible R)ing command, which will make the program think the phone has rung,
- and therefore it will pick up the phone. It could be useful. There are
- equivalent menu items for all commands except R)ing.
-
- (Note that if the Online Menu's "Sysop Next" item was selected during the last
- call, the prompt will be skipped and the session will be started as if the
- S)ysop Connect key was hit.)
-
- While waiting, events will also be checked. If it happens that the current
- time is within the bounds of an event, the program will exit with the name of
- that event in the usual return environment variable. Note that this
- scheduling is simplistic and can cause problems with repeated events if
- Falcon starts up again before the event ends. Make sure events take at least
- as long as their duration.
-
- If the phone has rung, then the program will send a code to the modem
- indicating that it should answer. It will then wait for 30 seconds. If an
- appropriate connect message is received, the session will begin. Should the
- program receive another ring code while waiting for a connect, it will assume
- that maybe the connect or no-carrier code for the last ring got munged and
- simply try to pick the phone up again. If no connect is made or broken during
- the 30 seconds, the program will hang up and resume waiting for a call.
- Typing A)bort will do the same thing.
-
-
-
- 4. Logging In
- ==============
-
- Once a user has connected to the system with a sufficient baud rate (if
- applicable) and gone through the Escape-Escape sequence (if applicable),
- they will be greeted with a brief tag noting that they are connecting to
- a Falcon CBCS, which was written by Brian Fehdrau. Then the first welcome
- file will be sent, and they will end up in the name prompt.
-
- To enter a name, they simply enter the first name and the last name at the
- appropriate prompts. These can be stacked and entered as the entire name
- all at once (ie. instead of "Brian<return>Fehdrau<return>", I would enter
- "Brian Fehdrau<return>" at the first name prompt. Then Falcon will display
- the name and ask if it is correct. To avoid this, they can simply append the
- confirmation to the stacked name ("Brian Fehdrau y").
-
- (I am aware that this method of asking for the name causes problems with
- certain names, such as the "Somebody van der Whoever" variety. I suggest
- using periods, like "Somebody van.der.Whoever". I think I'm going to have to
- change this.)
-
- Then Falcon asks for the user's password, which they get three chances to get
- right before being booted. Simple enough. Note that the prompt only shows
- periods where the letters should be, in order to keep people from reading
- passwords over other peoples' shoulders. This is one reason not to add the
- password to the stack mentioned above, as entering it there leaves it visible.
-
- Once the correct password has been entered, Falcon does a little user
- housekeeping, such as zeroing limits if it's a new day, and the like. At this
- point the time limit for this call is determined, based on time remaining
- for this day, absolute call limits, and scheduled events. Then it displays
- the second welcome file and any bulletins, and drops the user into the Main
- Menu.
-
- New Users
- ---------
- A new user logs on simply by entering their name. Since it will not be in the
- user file, the program will obviously assume they are new.
-
- If the program is configured to accept new users, it will prompt the user to
- enter the name of their city. It is at this point that they are advised that
- they can hit enter to return to the name prompt, which is useful for people
- who have entered their name incorrectly. Otherwise they enter their city's
- name. Then they are prompted for a password, and then prompted to enter it
- again to be sure it was correct. After that they answer a few prompts
- regarding IBM characters, ANSI and the like.
-
- The user's name is checked. If it's the sysop logging on for the first time,
- which is done by entering the name specified for the sysop in the
- configuration, then the user will be given SYSOP level. On the other hand,
- if they try to sign on as "Sysop" or "All", the program will assume they are
- a jerk and turf 'em. On the other ...foot?... they may be advised about
- the Change Menu's capitalization-changer if their name is the sort that
- is not supposed to be capitalized normally (presently only Mc and Mac names).
-
- The new user is dropped into the first unused record or appended to the end
- of the user file if their are no empty slots. They will have the new user
- level and limits which were specified in the configuration file, novice-level
- help, and any area/write keys they were supposed to get automatically.
-
- If the sysop has configured the program to keep an application file, a few
- more questions will be asked of the user. The data will not be used by
- the program, but it might be useful to the sysop. Each entry in the file
- will include the user's name and city, as entered already, along with their
- address, phone number, age, and computer type.
-
-
-
- 5. General BBS Information
- ===========================
-
- Once you're into the BBS itself, some of this information may be of use
- to you...
-
- "More [Y,n?]" Prompts
- ---------------------
- If you have "More [Y,n?]" prompts turned on in the Change Menu, and the
- amount of text sent out since the last prompt or screen-clear would fill up
- your screen (based on the Screen Length field in the Change Menu), you will
- get a More prompt. This prompt is simply to prevent text from scrolling off
- your screen before you have read it.
-
- Once you're in one of these prompts, your actions are obvious. You can type
- 'N' (or ^C) to break the current text, which will happen in exactly the same
- way as typing ^C normally would. Hitting 'Y' (or any other key, for that
- matter) erases the prompt and resumes text output.
-
- Note that the way the prompt is erased is based on your display as
- configured in the Change Menu. If you have told the Change Menu something
- about your display that is not true, this is one place where it may show up.
- If the prompt is not erased, you should checked your settings.
-
- If you're interested, the erasing is done by first dropping back to the
- start of the line, which is done with a carriage return if you have
- linefeeds turned on, otherwise with a number of backspaces. If you have
- ANSI on, the clear-to-end-of-line code is sent and that's that. Otherwise,
- the program sends out enough spaces to clear out the prompt, and drops back
- to the start of the line again in the same way it did before.
-
- Local Menus
- -----------
- While online, you can use several menu (Amiga, not BBS) items. Here they
- are, listed by their keyboard shortcuts:
-
- O Sysop on next Does a sysop logon immediately after
- current user hangs up.
- L Inactive logoff toggle Decides whether inactivity is a reason to
- log someone off.
- T Transfer toggle If transfers are off due to insufficient
- baud rates, this can allow them anyway.
- U User yelling toggle If Y)ell has not been scheduled for this
- time period, this can allow it.
- R Remote input toggle Decides whether or not the remote user can
- enter text. Good for mouthy jerks.
- Y Yell at user Obvious. Chat with the user.
- B Boot user Also obvious. They're outta here.
-
- These menus should work everywhere, including during normal text output and
- doors.
-
- Line Editing and Command History
- --------------------------------
- When typing at a prompt (be it a menu or in a line-edited message), you have
- some extended commands to edit the line. You may not be able to see
- everything you're doing if you have a destructive backspace. If you do, you
- should set Destructive BSp to YES in the Change Menu, or the BBS will send
- out a lot of unnecessary text when you're editing the middle of a line. If
- your backspace is non-destructive, set Destr.BS to NO and you should be able
- to see the entire line, no matter which part of it the cursor is on. Just
- remember that you are editing the entire line and that when you hit return,
- the entire line will be entered, no matter where your cursor is on it.
-
- If you are entering a password, all features of the prompt will still be
- available, but all output will be replaced with periods so that someone
- watching over your shoulder will not be able to see your passwords.
-
- Note: Prompts have length limits. If you insert into the middle of a full
- line, you will lose a character at the end of the line.
-
- Here are the commands you can use (NOTE: "^X" would mean Control-X):
-
- Simple VT100 Local Function
- ------- -------- -------- --------
- ^S Left Left Move left one character on the line
- ^D Right Right Move right one character on the line
- ^A Sh-Left Sh-Left Move left one word on the line
- ^F Sh-Right Sh-Right Move right one word on the line
- ^Q Home Home Move to start of line
- ^I = Tab,End Tab,End Move to end of line
- ^W Up Up Retrieves previous line (remembers the last 5
- ^Z Down Down Retrieves next line lines > 1 char long)
- ^H = BackSp. BackSp. Delete character behind cursor
- (127) = Del Del Delete character under cursor
- ^Y Erase to end of line
- ^X,^C Erase entire line
-
- ^[^[ Esc-Esc Esc-Esc For line editor, exit to Edit Menu
- ^W Up Up For line editor, move up one line in message
- ^Z Down Down For line editor, move down one line in message
- ^H = BackSp. BackSp. For line editor, delete character behind the
- cursor, or, if at start of line and line is
- not first line, move to previous line and make
- it wrap. Delete line if blank.
-
- F1 User level +1
- Sh-F1 User level -1
- F2 User time +10 minutes
- Sh-F2 User time -10 minutes
- F6 Toggle inactive logoffs
- F7 Toggle transfer availability for this session
- F8 Toggle Y)ell availability for this session
- F9 Toggle remote text lockout
- F10 Validate user (if level<NORMAL, level=NORMAL)
- Sh-F10 Boot user
- Help Function key command list
-
- Otherwise, the prompt accepts ASCII characters in the ranges of 32..126 and
- 160..254 as regular text.
-
- Other (Non-Prompt) Key Commands
- -------------------------------
- These commands are available during text output:
-
- Basic Key VT100 Local Function
- --------- ------ -------- --------
- ^C Break text output, wipe out type-ahead buffer
- In some cases this may not be permitted
- ^S Pause text output
- ^Q (^C) Unpause text output (or break)
- ^Z Wipe out type-ahead
-
- Otherwise characters are stored in a type-ahead buffer for later usage.
-
- Command Stacking
- ----------------
- It is possible to string several to-be-executed-consecutively commands
- together at the same prompt. A quick example would be a common way of
- logging off:
-
- [4] Highest: 9
- Msg.area 10 ... What I hate about Barry Manilow
-
- Select: a1gyn
-
- ...which would, without any large amounts of unnecessary text being spewed
- out (that normally would if the commands were to be typed one at a time),
- change the user's current area to 1, start the goodbye/logoff sequence,
- reply "yes" to the "Do you really want to log off?" prompt, and reply "no"
- to the "Leave a private message to the sysop?" prompt, thus saving the user
- about 10 lines of extra text being sent.
-
- Stacking should work at any prompt, except the line-based message entry
- prompt, and the stack will be automatically cleared if an erroneous command
- is encountered, thus avoiding any subsequent errors.
-
- The types of commands that can be placed on the stack are as follow:
-
- Type Example Terminator
- --------------- ----------------------- --------------------------
- White-Space " ", "," or ";" non-White-Space
- Single Letter "a", "A", "?" auto-terminates
- Word "password" White-Space
- Sentence "A message Subject..." "|" (must be used and also
- terminated as a Word)
- Number "-123" non-numeric character
- Stack "Blah Blah | more blah" bottom of stack
-
- The bottom of the stack terminates anything, of course.
-
- A "-" is a Single Letter only if not followed by a numeric character.
-
- One sort-of-exception to these rules is the initial first/last name prompt.
- A user with only one name (such as "Sysop") can insert a carriage return for
- the second name (if blank, none, non-existent, etc) by using a pipeline
- ("|") for the second name, despite the names being fetched as words. Also,
- some systems, such as Fido v12 which uses three names and not two,
- necessitate the pipeline at the end of the name(s) (ie. "Joe User | y
- password" for the same reason as "Sysop" would in Falcon. I've kludged the
- "Joe User, right? [Y,n]" prompt so that it will just keep grabbing Single
- Letters until it sees a non-pipeline, and thus a Fido key-macro will work on
- Falcon as well. As it happens, Fido no longer does this, but I figure this
- point ought to be explained and I don't feel like re-wording it.
-
- A good overall example of these is the basic message entry process, starting
- from the main menu and an unspecified message area for fun. We'd want to go
- to the Message Menu (single letter), the area menu (single letter), pick an
- area (number), pick the enter command (single letter), answer the "Private?
- [y,N,a]" prompt (single letter), enter a "To:" name (sentence), and a
- "Subject:" (stack):
-
- MAIN MENU
- Select: ma10eyJoe Sysop | What have you got against Barry Manilow?
-
- Voila. You should be in the editor. Get the idea? Good.
-
- Yelling with the Sysop
- ----------------------
- If you are chatting, either through the Y)ell command at the Main menu, or
- through an impromptu yell-at-the-user, and you have ANSI color on, you'll
- notice that the color changes depending on who is typing. Text the sysop
- enters comes up yellow, and text the user enters comes up cyan. This is to
- help make clear who typed what.
-
- You can exit a chat session by typing "/e" by itself on a blank line.
-
-
-
- 6. BBS Menus
- =============
-
- Falcon has eight built-in menus: the Main Menu, the Message Menu, the File
- Menu, the Change Menu, the User Edit Menu, the Edit Menu, the Subop Menu,
- the Librarian Menu, and the Sysop Menu.
-
- There should always be two levels of help available to the user. Entering
- "?" should show the help that a NOVICE user sees at every prompt. Entering
- "??" should show a more verbose list of commands, with a line of information
- about each one. Wherever the help comes from, though, including anything
- displayed automatically at the prompt, only the commands available to the
- online user's level are displayed.
-
- Another command which should always be available is the "_" command. This
- is useful in long stacks (especially the automatic login stacks), because it
- stops and asks the user to hit return before continuing. For instance, a
- login stack of "FLM* Q_MAF" would list all new files in marked areas, wait
- for a return, and then move to the message area (which usually clears the
- screen) and start reading the new messages.
-
-
- Main Menu
- ---------
- B)ulletin Redisplays the login bulletin.
- C)hange Menu Simply moves to the Change Menu.
- E)ditorial Display an editorial. This is normally some moralistic
- trash the sysop actually believes in. I'm beginning to
- think I should take out this command. :-)
- F)ile Menu Simply moves to the File Menu. J also works, because I kept
- typing the Message Menu's J)ump To File Menu command at the
- Main Menu.
- G)oodbye Starts the logoff sequence.
- I)System Info Display some system information, including the number of
- calls to date, the previous caller to the system, the date
- the system was "born", and the number of messages entered to
- date.
- M)essage Menu Simply moves to the Message Menu.
- Q)uote Displays a quote from the quote file, just like during the
- login sequence.
- S)tatus Display some user information, including time on line, time
- left, time online today, time left today, time online to
- date, kilobytes downloaded, kilobytes uploaded, efficiency
- of last transfer, number of calls to date, number of
- messages entered to date, matrix mail credit, and the last
- call. Also shows the current time and date.
- U)ser List Either display the entire user list or search it for a
- string. Shows full name, city, and last call.
- V)ersion Displays the version of the program, my name, and
- copyrights. Also displays brief information about
- registration if the program is (still!) unregistered.
- Y)ell Yell for Sysop to come and chat. This may not be possible,
- depending on whether or not the Sysop has scheduled Yell
- availability for this time of the day. Users with SYSOP
- level can Yell either way, if they want to. If it is
- possible, the screen will beep once a second for ten seconds
- and either the Sysop will answer or they won't and a message
- to try again later will be displayed.
- !)Sysop Menu Simply moves to the Sysop Menu.
-
-
- Message Menu
- ------------
- About reading: A SYSOP-level user can read any message. Users with lower
- levels can read any message except private messages not to or from them.
-
- About updating/re-editing: A SYSOP-level user can update any message.
- Users with lower levels can update any message they wrote.
-
- About hurling/forwarding/killing: A SYSOP-level user can do these to any
- message. An ASSIST-level user can do this to any message they can read.
- Users with lower levels can do this to any message to or from them.
-
- About writing: A SYSOP-level user can write in any area. Users with lower
- levels can not write if do not have the write key to writelocked area or if
- the area is a read-only area.
-
-
- Reading a Message
- ~~~~~~~~~~~~~~~~~
- First, if neither Zoom not Continuous modes are on, the screen will be
- cleared (or the equivalent for users with screen clears turned off).
- Otherwise a few blank lines will be output.
-
- Next, the header will be displayed. It will be in the following format,
- where descriptions in square braces indicate something that will be present
- only if applicable:
-
- Sender
- | [Sender's
- | Address] [Netmail cost]
- | | Addressee | [Flags (see below)]
- | | | [Destination | |
- | | | address] | |
- | | | | | .------'------.
- From: Barry M. | | | $1.23 Pvt Rec'd Crash
- Orig: (see below) | |
- To: Brian Fehdrau -' | #34/56 [4] Fri 9 Aug 91 16:08
- Dest: (see below) -------------' | | | `--------.--------'
- Subject: Re: Barry Manilow is a fink | | | |
- | | | | |
- | | | | Date & time sent
- Topic | | Times read
- | Highest message
- Message number
-
-
- Addresses may look like one of the following:
-
- Nodes: 1:140/22
- 1:140/22@FidoNet
- Benden Weyr (1:140/22@FidoNet) Saskatoon SK
-
- The latter is only if the Sysop has a traplist.library-format
- nodelist in which Falcon can look up node information.
-
- Points: 1:140/22.2
- 1:140/22.2@FidoNet
- 1:140/22.2@FidoNet, a point of Benden Weyr (1:140/22@FidoNet)
- ...Saskatoon SK
-
- The latter is only if the Sysop has a traplist.library-format
- nodelist in which Falcon can look up node information.
-
- External (non-FidoNet technologies):
- zeebie.uucp
- zeebie.uucp via <a fidonet address, as above>
-
- Flags:
-
- Flag Means
- ------- ------------------------------------------------------------
- Pvt The message is private between sender, addressee, and Sysop
- Crash CrashMail is NetMail which goes out immediately and directly
- Rec'd The addressee has read the message
- Sent Usually means matrix mail has been processed, may have other
- meanings for some echo/matrix mail processors.
- File The Subject field contains the name of a file to be sent with
- the matrix message. Called "File-attach".
- InTrans This message is between its sending node and its destination
- Orphan This message is InTrans but couldn't go anywhere from here
- Kill This message is to be deleted after it is Sent
- Local Shows if a matrix or echo message was entered on this system,
- actually on for ANY message entered on this system
- * This flag ("*") should not be on. It is an unused flag.
- Freq This matrix message contains a file request, I think.
- I've never used file requests.
- RcptReq An automatic receipt reply message is supposed to be sent
- back to the sender when this matrix message gets to its
- destination (often not supported)
- Rcpt This matrix message IS a receipt reply to a RcptReq message
- AudReq This matrix message should cause an audit reply message from
- each system it goes through, ideally meant to test routing
- (often not supported)
- Aud This matrix message IS an audit reply to a AudReq message
-
- After the header is done, the message body will be displayed. If it was
- entered as it was supposed to be, using line-wrapping, paragraphs should be
- formatted for the user's screen width. Text will be scrolled as it has been
- configured to in the Change Menu's "Scroll Type" command.
-
- There are four kinds of message lines:
-
- - Hidden control lines which start with ^A (called Kludge lines). These
- can be shown if the Change Menu's "Show Kludge Lines" is set to YES--
- they will show up in green if the user has ANSI color turned on.
- - Hidden echo SEEN-BY: lines. These can be shown if the Change menu's
- "Show SEEN-BY Lines" is set to YES--they will show up in green if the
- user has ANSI color turned on.
- - Quoted lines: those with a ">" character in the first six characters of
- the line which are not preceded by a "<" character (which allows for
- "<grin>"). These may be highlighted in white if the Change Menu's
- "Highlight Quote" is set to YES and the user has ANSI color turned on.
- - Normal text, which will be shown as cyan if the user has ANSI color
- turned on.
-
- - A pseudo-fifth kind of line is a blank line, one which has absolutely
- nothing on it. Lines like this will actually be displayed as a single
- space, which is all but invisible when reading, but handy for capturing
- and re-uploading to a line editor.
-
- Then, if message is reply, it will say at the bottom, in white:
-
- "*** Reply to #<original>."
-
- If the message has a reply, it will say at the bottom (on the same line as
- the Reply line, if it is there), in white:
-
- "*** See also #<reply>."
-
-
- The Prompt
- ~~~~~~~~~~
- The message area prompt is a little different from the others. When you
- first enter the menu or a new area, it will show the following:
-
- - The number of messages in this area and the highest one.
- - If the number of messages is 0,
- "NO messages"
- Else if the user's last-read pointer is 0,
- "You haven't read any of these messages"
- Else if the user's last-read pointer points to the highest message,
- "NO NEW messages have been posted"
- Else if the user's last-read pointer is greater than the highest msg,
- "POSSIBLE ERROR: Your lastread pointer was higher than n."
- Else if the user's last-read pointer is between 0 and the highest msg,
- "The last message you read was N."
- - Then the prompt:
- [<current msg #>] Highest: <highest msg #> <notice>
- (ECHO|MATRIX|Msg.) area <area #> ... <description>
-
- Where <notice> may say "Press enter for <direction> msg" if any more
- messages are available in the current direction (<direction> is either
- "NEXT" or "PRIOR").
-
- - In Zoom Read mode it will skip all of the above when it goes to the next
- area, saying "ZOOMing to <area description>" and starting up a
- continuous read for this area. Once the read is done, it will ask the
- user if they want to enter a message in this area. If they say yes,
- they are allowed to do so, then asked again, and so on, until they say
- no. When they say no, the program looks for the next area.
-
-
- Finally, to the command list:
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- <msg>)Go To Msg If <msg> is in range, this will move to that message number
- and read it or the next available message from there (in the
- current direction).
- <cr>)Read Next Hitting carriage return reads the next message in the
- current direction, which defaults to forward and can be set
- with the P)revious and N)ext commands. If the direction is
- forward and there are no messages left and change menu's
- Auto-Next-Area is set to YES, the program will skip to the
- next marked area with new messages, like typing "/" (or
- "AN"), or reset the area to 1 if none are left.
- A)rea Lists all available areas and asks which, if any, to switch
- to. Normally, this will not show areas you cannot access,
- but if the sysop has supplied a special text file for this
- list, it may contain inaccessible areas.
-
- Hitting <cr> returns the user to the current area.
-
- There are a few commands that can be entered as well as an
- area number:
-
- M - Next marked area
- N - Next marked area with new messages (see "/", below)
- C - Next marked area with new messages, checking current
- area first
- F - First marked area with new messages
- ? - Describes above four commands
-
- If the Change Menu's "Verbose Scan" is set to YES, the above
- commands show each area's number as it is being checked.
-
- If the program runs out of areas for the above commands, it
- sets the user's area back to 1 and says so (and waits for
- the user to hit return if they have screen clears on, so
- that they won't miss the no-more-areas notice).
- B)ody Search Works like hitting return to read the next message, but
- skips over all messages that do not contain a given string
- in the header or the message text.
- C)urrent Msg This reads the current message, if it exists. Good for
- times when a burst of line noise mangles a message and you
- want to read it again without typing in its number.
- E)nter a Msg Obvious enough. See "About writing", above.
- F)orward Msg Forwards a message to someone else. What is done is the
- message is copied into a new message From: <you> and To: All
- with a note about the original sender/receiver/date. The
- message can then be U)pdated if necessary.
- G)oodbye Starts the logoff sequence.
- H)url Message "Hurls" a message into another area. Useful for putting an
- inappropriately-placed message in the proper area.
- I)nquire/Index Looks for a string in message headers, starting with
- highest, going downwards to the lowest, and showing all
- message headers that contain that string.
- J)ump to File "Jumps" over the Main Menu to the File Menu. Use this
- instead of the usual "MF".
- K)ill Message Deletes a message and re-links any reply/see-also chains it
- may have been involved in. See above, under "About hurling/
- forwarding/killing".
- L)ist Messages Lists messages from a starting point upwards, in the
- following format: "<#> <date> <flags> From: <from> To:
- <to>", where <flags> contains two characters, the first '-'
- if the message is public and 'P' if it is private, and the
- second '-' if the message has not yet been received and 'R'
- if it has been.
- LV)List Verbose Just like L)ist Messages, except it adds another line to
- each entry which contains the Subject.
- M)ain Menu Simply moves to the Main Menu. You can also Q)uit to the
- Main Menu.
- N)ext Message This reads the next message, if there is one, and sets the
- current reading direction to forwards. This command, unlike
- P)revious, may have the same side effects as hitting
- <return> while in forward mode. See the section on hitting
- <return>.
- P)revious Msg This reads the previous message, if there is one, and sets
- the current reading direction to reverse.
- R)eply to a Msg Replies to the current message, if it exists. The
- appropriate strings will be copied into the new message's
- header, although they may be replaced at need. It should be
- pointed out that, unlike some programs, it is okay to reply
- to a message you haven't just read. If the message your
- pointer points to is accessible, you can reply to it and the
- right information will be put into the prompt defaults.
- S)tatus Display some user information, including time on line, time
- left, time online today, time left today, time online to
- date, kilobytes downloaded, kilobytes uploaded, efficiency
- of last transfer, number of calls to date, number of
- messages entered to date, matrix mail credit, and the last
- call. Also shows the current time and date.
- U)pdate Message Loads an already-saved message back into the message editor
- for re-editing. Note that, because of problems with
- preserving control line information, it is not permitted to
- U)pdate echo or matrix messages. See above, under "About
- updating".
- X)press Search Works like hitting return to read the next message, but
- skips over all messages that do not contain a given string
- in the header.
- Z)oom Read This is much the same as =)Continuous Read but does so in
- all marked areas with new messages, and prompts the user to
- see if they want to enter a message after each area has
- finished. See above, under "The Prompt" for more
- information.
- .)(Un)Mark Area Toggle the mark on the current area. Used for A)rea
- commands.
- /)Same as "AN" Skips to the next marked area with new messages, just like
- typing "AN", except a little less text is output and it's
- only one character to type.
- !)Subop Menu Simply moves to the Subop Menu.
- +)Move to Reply Moves to the message number in the "*** See also #x." part
- of the current message, if applicable.
- -)Move to Orig. Moves to the message number in the "*** Reply to #x." part
- of the current message, if applicable.
- =)Cont. Read Turns on continuous mode, which reads all messages from the
- next on to the end of available messages in current
- direction, without prompts or screen clears between
- individual messages. It can be stopped by typing ^C. The
- user is asked if they want to leave ANSI (and if so, ANSI
- color) and "More [Y,n]" prompts on during the read.
-
-
- File Menu
- ---------
- About New Files: A file is considered "new" if its date is later than that
- of the last call the user made during which they did a file listing. Note
- that that refers to a listing of *any* area and not just the one in
- question. Because listing any area sets the "last call with a listing" date
- for subsequent calls, it is suggested that you look for all new files with
- the L)ocate command, either "LM*" for marked areas or "LG*" for all areas.
- Otherwise, if you list one area and then get logged off, your "last listing"
- date will be set and you will have a harder time finding the new files in
- the areas you did not list. A login stack starting with "FLM* Q_" or
- "FLG* Q_" would be a good idea. See the Change Menu's X)ecute command for
- more information on login stacks.
-
- <cr>)New Files The first time <return> is hit (with nothing else on the
- line), the program lists new files as if the "N)ew Files"
- command had been executed. If the files have already been
- listed in this area and the Change Menu's "Auto-Next-Area"
- is set to YES, it will execute the "/)Next Marked Area With
- New Files command". This can be used in a manner similar to
- hitting return to find all new messages in the Message Menu.
- A)rea Lists all available areas and asks which, if any, to switch
- to. Normally, this will not show areas you cannot access,
- but if the sysop has supplied a special text file for this
- list, it may contain inaccessible areas.
-
- Hitting <cr> returns the user to the current area.
-
- There are a few commands that can be entered as well as an
- area number:
-
- M - Next marked area
- N - Next marked area with new files (see "/", below)
- C - Next marked area with new files, checking current
- area first
- F - First marked area with new files
- ? - Describes above four commands
-
- If the Change Menu's "Verbose Scan" is set to YES, the above
- commands show each area's number as it is being checked.
-
- If the program runs out of areas for the above commands, it
- sets the user's area back to 1 and says so.
- C)ontents Either views the contents of an archive it recognizes, or
- tells the user what the file may be (if it knows).
- Otherwise it will say it doesn't know what the file is.
- D)ownload File Used to transfer a file from the BBS, if file transfer
- protocols have been set up by the sysop. First the user
- selects the protocol, and then they will be asked for one or
- more filenames. If the protocol allows for it, all files
- requested may be sent in a batch, but otherwise only the
- first will be sent. Use "|" as a filename to indicate the
- end of the file list so that other commands can be stacked
- for after the transfer, ie. "DZ FalconXXX-1.LZH
- FalconXXX-2.LZH FalconXXX-3.LZH | GYN" to download all of
- the Falcon files and then automatically log off. If any
- files are not present, the user is prompted to enter the
- list again (Remember the line history! One can use ^W to
- bring up the last line for re-editing.).
-
- The total file size and time required is then shown. If
- this copy of Falcon is unregistered and the files total more
- than 50K, the transfer will be aborted with a notice about
- the 50K limit. If there is not sufficient time to complete
- the transfer (in the BBS's estimation), the user will be
- warned that they should abort, but allowed to continue if
- they want because the estimate may be off or they may be
- able to resume the download during the next call if the
- protocol allows for it.
- F)ile Listing Shows all files, or new files if the user enters "F*", or
- searches for a string if the user enters "F<string>". You
- must use whitespace to stack commands after a F)ile Listing,
- ie. "F <more commands>" or "F.wrp <more commands>".
-
- The file listing will consist of individual files which may
- be accompanied by comment lines. The file entries are in
- this format:
-
- <name> <size> <date>* <description>
-
- The size and date are derived from the actual file and not
- from the list, so they may say "MISSING" and "??-???-??" if
- the file can not be found (some Sysops use this feature to
- store very large files offline which can then be
- requested). The (blinking) asterisk after the date, if
- present, indicates a new file.
- G)oodbye Starts the logoff sequence.
- H)url File "Hurls" a file, along with its description (if it has one)
- into another area. Useful for putting an inappropriately-
- placed file in the proper area.
-
- Technical note: This tries to simply rename the file from
- one directory to another, but if that is impossible
- (normally because the two directories are on different
- devices or partitions), the user is given the option to
- physically copy it over and delete the original. This will
- show progress, in percent, at most once a second.
- I)mport File Used to put file(s) into the F)ile Listing. Asks for file
- name(s), and then when done it asks for a description of
- each file imported. This is mostly used for local
- "uploading".
- J)ump to Msgs "Jumps" over the Main Menu to the Message Menu. Use this
- instead of the usual "MM".
- K)ill File Deletes a file and takes it out of F)ile Listing if it is in
- it.
- L)ocate Files This acts much like using the F)ile Listing to search for a
- string, but looks in all areas (a G)lobal search) or all
- marked areas (a M)arked search) for either a given string or
- "*" for new files. As is mentioned above, using LM* or LG*
- is a very good way to quickly find all new files.
- M)ain Menu Simply moves to the Main Menu. You can also Q)uit to the
- Main Menu.
- N)ew Files Shows new files in this area, just like typing "F*", but
- shorter.
- R)Zmodem Upload Because Zmodem always starts a send (upload) by sending the
- string "RZ<return>", this command was added to automatically
- start receiving should someone start a Zmodem upload without
- entering "UZ" first. Note that there must be a Z)modem
- protocol available. See U)pload for more information. The
- only difference is that this command does not bother with
- the space/time-available information, as the other end
- should not be able to see it if it is already sending.
- S)tatus Display some user information, including time on line, time
- left, time online today, time left today, time online to
- date, kilobytes downloaded, kilobytes uploaded, efficiency
- of last transfer, number of calls to date, number of
- messages entered to date, matrix mail credit, and the last
- call. Also shows the current time and date.
- T)ype File Types a file. This leaves things like "More [Y,n]" prompts
- on, and that is how it differs from an ASCII transfer.
- U)pload File Used to transfer a file to the BBS, if file transfer
- protocols have been set up by the sysop. First the user
- selects the protocol, and then they may be asked for a
- filename, but only if the protocol does not send it
- automatically. Then it will warn the user about time and
- space available. If this copy of Falcon is unregistered, it
- will warn the user about the 50k transfer limit. Then it
- starts waiting for the transfer to start.
-
- A file whose upload was aborted for some reason (ie.
- insufficient time) may be resumed if the user is the one who
- started it (or is a SYSOP-level user) and the protocol
- allows for it. Simply start an upload with the same name.
- As a side effect, a protocol that does not resume can be
- used to replace a file in the same fashion.
-
- After the upload, the program asks for the description(s) of
- file(s) uploaded. If the user has disconnected, files are
- given blank descriptions.
- Z)ippy Listing This does a zippy (meaning "quick" - okay, so I was running
- out of good letters) AmigaDOS "List"-command-style listing
- of the directory which contains the current area's files.
- This may show files which are not in the F)ile Listing, such
- as the "files.bbs" file the F)ile Listing is derived from.
- Unless the user is of SYSOP level, this will only show files.
- .)(Un)Mark Area Toggle the mark on the current area. Used for A)rea
- commands and L)ocate M)arked commands.
- !)Libr. Menu Simply moves to the Librarian Menu.
- /)Same as "AN" Skips to the next marked area which has new files. This is
- just like typing "AN", except a little less text is output
- and it's only one character to type.
-
-
- Change Menu
- -----------
- This menu always shows the status of all available options. This is the
- format at the time of writing:
-
- U)ser Name.......<name>
- C)ity............<city>
-
- H)elp Level......<n/r/e> S)creen Clears...<y/n> T)ab Expansion...<y/n>
- E)ditor Type.....<l/s> ANSI G)raphics...<y/n> LineF)eeds.......<y/n>
- Screen W)idth....<width> R)emove Color....<y/n> N)ulls...........<num>
- Screen L)ength...<length> I)BM.Characters..<y/n> See Seen-B)y's...<y/n>
- M)ore Prompts....<y/n> >)Highlite quote.<y/n> See K)ludges.....<y/n>
- +)Auto-Next-Area.<y/n> D)estructive BSp.<y/n> V)erbose Scan....<y/n>
- Msg Z)Scrolling..<s/p/w> X)ecute At Login.<stack>
-
- Marked A)reas:
- Message: <area list>
- File: <area list>
-
- A)rea Marks Toggle marks on file or message areas. Enter M or F to
- select which type (defaults to M), or a number to toggle an
- area. Hit return or enter Q to quit back to the Change Menu.
- B)SEEN-BY Lines SEEN-BY: lines usually follow the Origin: line of an echo
- message. Since they aren't the least bit interesting,
- they're normally detected and hidden. They can be shown if
- this option is toggled to YES.
- C)ity Obvious. Change the city the user lives in.
- D)estr. BackSp. If, when your terminal displays a Backspace (ASCII 8)
- character, it erases the character under the cursor's new
- position, you have a destructive backspace. If there is no
- effect other than moving the cursor, you have a non-
- destructive backspace. Falcon will give you a brief test to
- see which you have. Making sure this is set correctly is
- important because it is used in prompt editing and in
- erasing "More [Y,n?]" prompts.
- E)ditor Type Toggle between the the LINE-oriented editor (called LORE)
- and the SCREEN-oriented editor (called FRED, after Falcon's
- Rapid EDitor). If you have a large enough display (60x10 or
- more), are calling at 1200 baud or more, and you are running
- with a terminal that supports ANSI (with Insert/Delete Line/
- Character codes), you should set this to SCREEN.
- F)Linefeeds Toggle linefeeds on or off. Do NOT turn this off if you
- need them! Everything will suddenly be displayed on one
- line if you do. Local console users must be especially
- careful because the local screen always gets linefeeds and
- the effects may not be seen until they log in from remote.
- If you happen to get that effect without realizing how you
- did it, then this is the toggle for you.
- G)ANSI Graphics Toggle ANSI positioning and color codes on and off. If you
- have them on and you see a lot of things like "[0;36m", then
- your terminal does not support ANSI and you should turn it
- off here. See also R)emove Color.
- H)elp Level Sets the help level. There are three levels, and they give
- the following format to most menus:
-
- NOVICE:
- <menu name> MENU: Type "??" by itself for help
- <brief help, as when "?" is typed>
- Select:
-
- REGULAR:
- <menu name> MENU: <command letters available>
- Select:
-
- EXPERT:
- <menu name> MENU:
- Select:
-
- Variations exist in the Message, File, and User Edit menus.
- It is suggested to users on floppy-based systems that they
- not use NOVICE, as the brief help is read from a text file
- every time. Letter help is also read from the same help
- file, but it is cached at run-time to avoid noticeable
- pauses for such a small amount of text.
- I)BM Characters Toggle whether or not Falcon sends out IBM (ASCII 128-255)
- characters on purpose. Off the top of my head, I can only
- think of the dividing lines in the screen editor, which are
- either dashes or horizontal IBM graphic bars, depending on
- this setting. Note that they are not actually filtered out
- if they come up in unexpected places. Maybe later.
- K)ludge Lines Kludge lines are message lines, usually in echoes or netmail
- areas, which contain control information and are usually
- hidden because the line starts with Control-A (called an
- IFNA Kludge, for reasons I don't care to explain). They can
- be shown if this option is toggled to YES.
- L)Screen Length Change screen length, in the range of 2-100. There will be
- a test if the length is not stacked (ie. "L25").
- M)"More? [Y,n]" Toggle "More? [y,n]" prompts at the end of each page of text.
- N)ulls Determine the number of "filler nulls", or ASCII 0
- characters, to be sent out after each carriage return. I
- think it's meant for systems with small receive buffers and
- slow scrolling. Note that this has never actually been
- implemented in the BBS, but it's there for doors. I suspect
- nobody actually needs them anymore, but we'll see if anyone
- complains.
- P)assword This changes the user's password. It first asks for the old
- password, to be sure nobody has walked in while the real
- user was, say, answering the call of nature. Then it asks
- for a new one and asks again to confirm that it got it right.
- Q)uit to Main Simply moves to the Main Menu. Hitting <return> also does
- this.
- R)emove Color Toggle suppression of color when ANSI is on. If your term
- supports ANSI, but you don't want the colorful display, you
- can use this to turn it off. This is also useful if your
- terminal is monochrome anyway, as it cuts down on the amount
- of escape codes transmitted. You still get the advantage of
- screen positioning codes and the full-screen editor if you
- use it.
- S)creen Clears If this is set to YES, the screen will be cleared in various
- places, such as the beginning of each message, or the entry
- to the message menu, or the change menu, etc. If it is set
- to NO, a blank line will be sent instead of a screen clear.
- This does not affect the screen editor, of course.
- T)ab Expansion Toggles whether or not Tab characters are expanded to
- spaces. This is not actually used in Falcon itself, but it
- is available for doors to use.
- U)ser Name Obvious enough. Allows the user to change their name.
- Normally this will not be available to the average user.
- Note that it is not permissible to change the name to
- "Sysop" or "All".
- V)erbose Scan If this is toggled to YES, using the special area-scanning
- commands will display the area numbers as they are scanned.
- Most useful, I imagine, for floppy systems. On a hard drive
- the pause is negligible.
- W)Screen Width Change the screen width, in the range of 16-160 columns.
- X)ecute @ Login Change the command stack to be executed automatically at
- login. Use " " to clear it. There is a maximum of 25
- characters. I personally recommend "FLM* Q_MAF", which
- locates and displays all new files in all marked areas,
- stops and waits for the user to hit return, then finds the
- first marked message area with new messages. This of course
- assumes that the user has marked their favourite areas.
- Note that the starting place is (obviously) the Main Menu.
- Z)Scroll Mode This affects the way a message scrolls. This does not
- affect Zoom or Continuous read modes.
-
- S ... Normal scrolling.
- P ... Display one page at a time under the message
- header. This requires ANSI and More prompts.
- W ... Scrolls a window of text under the message
- header. This requires ANSI with Delete-Line
- codes.
- +)Auto-Next If this is set to YES, and all available material has been
- seen in the current area, hitting return will either skip to
- the next marked area with new material or return to area 1.
- Applies to both file and message areas.
- >)Quote H.Light Toggles highlighting of quote lines in messages. Meaning, if
- ANSI color is on, will turn ">"-style quotes white while the
- the main text is cyan.
- ^)Capitalizing Presently this only toggles Mcname or Macname with McName or
- MacName. However, I'm going to have to change that sooner
- or later because there are other oddly-capitalized names out
- there.
-
-
- Edit Menu
- ---------
- Note that this menu is somewhat different, as it is accessed from the line-
- based message editor. See the section on that editor for more information.
-
- If you are logged off while in this menu, your message will be saved with a
- note at the bottom saying that it was done automatically due to a
- disconnection.
-
- C)ontinue Continue message where you last left off (or set the
- cursor). This may drop you into the middle of the message
- if you have put the cursor there.
- N)ew Message This simply reinitializes the message buffer (to a blank
- message). Good if you give up on your current text but
- still want to say something.
- A)bort Message Obvious. Exit the message editor without saving the
- message. There will be a y/n prompt to see if this was done
- on purpose. Note that there is an invisible Q)uit Message
- command that does the same thing.
- F)Change Flags Use this to toggle the following message flags (if
- applicable): Pvt, Crash, Kill (after sending), File
- (as in file-attach).
- T)o Change the "To:" field of the message. If "Sysop" is
- entered, it may be redirected to a real name if the sysop
- has set up the program to do so.
- J)Subject Change the Subject: field of the message.
- D)Delete Line Delete one line of the message. Note that this deletes one
- physical editor line, and not any lines which is may wrap
- to.
- W)rap toggle Toggle whether or not a certain line wraps around to the
- next. Meaning whether the next line continues the paragraph
- that this line was part of.
- I)nsert At Select the new position to insert text at - note that it is
- perfectly fine to pick a place in the middle of the
- message. There will be a notice about which line to pick
- for the end of the message, which will normally be the
- highest line + 1.
- E)dit Line Perform a search & replace function on one line. Note that
- the search string is not case-sensitive.
- L)ist Message List message, including header - except for line numbers,
- this will look very similar to what a user would see when
- they read the message.
- S)ave Message Clear enough. Save the message and exit the editor.
- H)elp Transmits an extended help file with information on for
- using the line editor itself.
-
-
- Subop Menu
- ----------
- A)ll Keys/Marks Give out or take away all area keys, write keys, or marks.
- C)ode/Tag Change the area's mail code/tag, ie. "AMY_POINT".
- D)irectory Change the area's regular directory/path. If the path for
- the area does not exist, there is an option to create it.
- Use "." for the current directory, since hitting return
- aborts.
- F)Toggle Flag Toggle one of the area flags: INVISIBLE, LOCKED, READONLY,
- PRIVATEONLY, PUBLICONLY, WRITELOCKED, AUTOKEY, or
- AUTOWRITEKEY.
- I)nformation Display information about current area: name, code,
- directory, level, password, type, flags.
- R)eload Stats Rereads the area's directory to determine the number of
- messages and the highest message. This can be used if the
- cached statistics appear to be wrong.
- K)Toggle Key Toggle one user's area key.
- L)evel Change the area's minimum entry level, ie. PRIVIL.
- M)Toggle Mark Toggle one user's area mark.
- N)ame Change the area's verbose name, ie. "General Messages".
- P)assword Change the area's password. Use "-" to turn it off, since
- hitting return aborts.
- Q)uit Moves/quits to the Message Menu. Also saves message area
- configuration file if necessary.
- T)Area type Change the area's type: NORMAL, ECHO, or MATRIX.
- V)iew Users List users: A)ll users, users I)n the area, users O)ut of
- the area, users who can W)rite, M)ute users, and users
- S)earched for.
- W)Toggle Write Toggle one user's write key.
- #)Renumber Renumber the area's messages. When it asks for the "first",
- it means the lowest message that could be deleted - note
- that all messages below the first must exist. This is used
- mainly to preserve echo highwater messages (1.msg) by
- starting with message 2 (note - it will still adjust reply
- links for messages below this, as it should). When it asks
- how many should be left, it wants to know the number of
- messages that can remain at or above the first after
- renumber is done. Use a very large number to just renumber
- and not reduce (ie. # 1 5000). Note that is is perfectly
- fine to ask for zero messages to be at or above the starting
- point.
-
-
- Librarian Menu
- --------------
- A)ll Keys/Marks Give out or take away all area keys or marks.
- C)ode/Tag Change the area's mail code, ie. "GENERAL".
- D)irectory Change the area's regular directory/path. If the path for
- the area does not exist, there is an option to create it.
- Use "." for the current directory, since hitting return
- aborts.
- F)Toggle Flag Toggle one of the area flags: INVISIBLE, LOCKED, READONLY,
- or AUTOKEY.
- I)nformation Display information about current area: name, code,
- directory, upload directory, level, password, type, flags.
- K)Toggle Key Toggle one user's area key.
- L)evel Change the area's minimum entry level, ie. PRIVIL.
- M)Toggle Mark Toggle one user's area mark.
- N)ame Change the area's verbose name, ie. "General Files".
- P)assword Change the area's password. Use "-" to turn it off, since
- hitting return aborts.
- Q)uit Moves/quits to the File Menu. Also saves file area
- configuration file if necessary.
- T)Area Type Change the area's type: NORMAL, or MATRIX.
- U)pload Dir. Change the area's upload directory/path. If the path for
- the upload area does not exist, there is an option to create
- it. Use "." for the current directory, since hitting return
- aborts.
- V)iew Users List users: A)ll users, users I)n the area, users O)ut of
- the area, and users S)earched for.
-
-
- Sysop Menu
- ----------
- A)dd Area Use this to create a new message or file area, to be
- customized with the Subop or Librarian menus, respectively.
- If the path for the area does not exist, there is an option
- to create it. Use "." for the current directory, since
- merely hitting return aborts.
- D)irectory Displays a DOS "List" command-style list of files in a given
- directory.
- E)UserEdit Menu Simply moves to the User Edit Menu.
- F)ile Areas Displays all file areas, in this format: "<area> <type>
- <level> <Lock,PW,Inv. flags> <description>".
- K)ill Log If the Sysop has a LOGFILE, it can be deleted with this.
- L)System Log If the Sysop has a LOGFILE, it can be displayed with this.
- M)essage Areas Displays all message areas, in this format: "<area> <type>
- <level> <Lock,PW,Inv. flags> <description>".
- Q)uit Moves/Quits to the Sysop Menu. Also saves message area
- and/or file area configuration files if necessary.
- S)wap Areas Allows one to exchange two message or two file areas. This
- is used for rearranging areas. Use this instead of editing
- the area files because it also swaps all area information,
- user pointers, keys, etc. It is permissible to swap a real
- area for an empty one, except that area 1 must be a real
- area.
- T)ype File Display a given file. Only sysop can type *.msg, user.bbs,
- user.bak.
-
-
- User Edit Menu
- --------------
- The prompt for this menu also shows the currently selected user (or
- "<none>").
-
- A)dd User Creates a blank user in the user.bbs file. They are given
- the default new user level, or NORMAL if the system is
- configured not to take new users. This new user should next
- be edited with other commands to personalize it.
- C)ity Simply changes the City for the currently selected user.
- D)elete User Deletes the current user (if it's not the user doing the
- editing), but prompts first to be sure it was intended.
- Note that this sets the record to "unused" (designated by a
- blank name) for later use. It does not actually shorted the
- user log.
- E)dit User Select a user to edit. Gives option to save current user,
- if necessary. When selecting, it is possible to search for
- a user name (or number). Use "*" to search through all
- names. When searching, the user will be prompted about
- whether this is the user they want or not, and to see if
- they want to abort this search. Use "?" to list all names
- without prompts.
- H)Toggle Hidden Hides (or unhides) selected user from users lower than SYSOP
- in various user lists.
- I)User Info Shows the following user stats: name, number, status of
- "hidden" flag, city, password (if in local mode and user
- looking is of SYSOP level), last time on, level, netmail
- credit, time on & time limits, downloads & download limits,
- calls, messages entered, and the various keys they have
- (message, message write, file, subop, librarian).
- K)Toggle A Key Toggles any key (message, message write, file, subop,
- librarian). Note that only a SYSOP-level user can grant
- subop and/or librarian keys.
- L)User Level Set the currently selected user's level. A level higher
- than the giver's cannot be granted. Note that this
- modifies time/transfer limits if necessary.
-
- User levels are as follow: TWIT, DISGRACE, NORMAL, PRIVIL,
- ASSIST, and SYSOP, in ascending order. TWIT is normally
- punishment. DISGRACE is normally used for new users
- awaiting verification. NORMAL should be what the general
- rabble have. PRIVIL is for preferred users. ASSIST is
- obviously for assistants. And, of course, SYSOP is the
- biggie and needs no explanation.
- N)ame Simply changes the Name the currently selected user.
- P)assword Change the currently selected user's password. This is only
- available to SYSOP-level users at the local console.
- Q)uit Moves/quits to the Sysop Menu. Also gives option to save
- user or abort the exit if a user is currently selected.
- T)ime/Transfer Set time and/or transfer limits. If there is no user
- selected, this affects all users of given level. Asks for
- time per day, time per call, download per day, download per
- call, and whether or not to clear the user's accumulated
- downloads.
- V)alidate User "Validate" the currently selected user. If their level is
- less than NORMAL, it is set to NORMAL and the time/transfer
- limits are adjusted.
- $)Net Credit Set netmail credit in cents. (Yes, folks, I know not all of
- you use dollars and cents. Sorry. Maybe it'll be
- configurable later.)
-
-
-
- 7. Entering and Editing a Message
- ==================================
-
- Starting a message
- ------------------
- Starting a message is a matter of either E)ntering one or R)eplying to one
- in the Message Menu (also, you could leave a logoff message to the sysop).
- The very first thing that may be asked, assuming the message is a reply, is
- whether or not you want to quote the message into the message buffer. If you
- do, it will be quoted in the (de facto) standard " initials> some quoted
- text" style, with a header line that says, "In a message dated <datestamp>,
- <sender> wrote:"). If you do this, please make sure you delete all the text
- you do not want, or else you'll be wasting disk space and the reader's time.
-
- The next thing you will be asked, unless you are a user with a level lower
- than sysop in a public-only or private-only area, is whether or not you want
- the message you are about to enter to be private. A private message cannot
- be read by normal users. Only the sender, the recipient, and users with
- a user level of SYSOP can read it.
-
- Next, if this is a netmail message and your level is SYSOP, you will be asked
- if you want to send the message as CrashMail. The reason this is restricted
- to SYSOP is because CrashMail goes out immediately after the call, and
- DIRECTLY to the destination without routing. In other words, we can't have
- Joe Jerk sending a "HI! I'M JOE, WHO ARE YOU?" message to Tokyo (or
- Saskatoon, if you happen to be reading this in Tokyo). Note that the actual
- sending of CrashMail is up to the mail tosser and mailer. Falcon just flags
- it as being such mail.
-
- Next, if this is a netmail message, you will be asked if you want this
- message to be killed after it is sent. If you cannot figure out what this
- results in, you are a stupid festering hunk of goo and do not deserve to
- send netmail.
-
- Again, if this is a netmail message, you will then be asked to enter a
- destination address. If this is a reply, the default address will be the
- sender's address in the message you replied to, and if not it will be the
- address of the system you are on. See "Entering a FidoNet Address", below,
- for more information on doing so.
-
- Next, a simple "To:" prompt. This is, obviously, the name of the person
- you want to send this message to. If the message is a reply, the original
- sender's name will be the default. If you're sending a private message,
- this name will be checked against the user list, and if it's not in there,
- you will be warned that there is nobody by that name to receive it, and
- asked if you want to try again. You can use "?" for a name if you want to
- look through the user list to, say, find the proper spelling of a name (you
- can search for a string or list all users by hitting return). Note that if
- you send to "Sysop", your message will probably be re-directed to the
- sysop's real name.
-
- Next, if this is a netmail message, you will be asked if you want this
- message to have a file or files attached to it. The file(s) will then be
- named in what is normally the Subject line. See your mail tosser
- documentation to be sure that it supports this, and to see what the syntax
- is supposed to be for the Subject line, because I've never used this and do
- not know anything about it except that Falcon sets the File-Attach bit.
-
- Finally the Subject: prompt, which is obvious enough. If this is a reply,
- the default for this prompt is the subject of the original message, with a
- "Re: " prepended if one is not already there. Just for your information,
- "Re" is apparently an originally-Latin word ("res") which means "Concerning"
- or "In the matter of" (or "Regarding" if you need a "re" word in order to
- remember). It doesn't stand for "Reply".
-
- Note that the Subject: prompt will say "File(s):" instead if this is a file-
- attach message.
-
-
- Entering a FidoNet address
- --------------------------
- The simplest thing to do is to hit return, which will enter the default
- address. This may be the desired address if, for instance, the address
- being prompted for is the destination for a reply.
-
- The syntax rules for entering an address are as follows:
-
- 1) Entering a number preceded by a "." changes the point
- 2) Entering a number preceded by a ":" changes the net
-
- 3) Entering a number followed by a ":" changes the zone
- 4) Entering a number followed by a "/" changes the net
- 5) Entering a number followed by a "." changes the node
-
- 6) Entering a number followed by nothing and preceded by nothing or
- a '/' changes the node, and sets the point to 0
-
- Several rules may apply in a string, ie. "123/45" uses the fourth and sixth
- rules, in that order. Since it's not necessarily clear from the rules what
- to do, here are some useful forms which show that the rules really just
- describe the format you'd probably want to use anyway:
-
- node to send to a node in your net, implies .0
- net/node to send to a net/node in your zone, implies .0
- zone:net/node to send to zone:net/node, implies .0
-
- .point to sent to a point off of your node or your boss
- node.point to send to point in your net
- net/node.point to send to a net/node.point in your zone
- zone:net/node.point to send to zone:net/node.point
-
- zone: to set the current zone without exiting the prompt
- net/ to set the current net without exiting the prompt
- node. to set the current node without exiting the prompt
-
- Obviously "zone", "net", "node", and "point" would be replaced by numbers.
-
- Other stuff you can enter at the address prompt, if the program has access
- to a nodelist:
-
- Z or : by itself gives a listing of zones (quite slow)
- N or / by itself gives a listing of nets in current zone (slow)
- O or # by itself gives a listing of nodes in current net
- P by itself gives a listing of points off of current node
-
- Once an address has been entered, it will be checked for existence. If
- there is a nodelist, only SYSOP-level users will be allowed to send to non-
- listed destinations (with a warning). If there is no nodelist, the user
- will be warned that the destination may not exist.
-
- If a message is not local, its cost will be obtained from the address'
- listing in the nodelist, or from the default cost set up in the
- configuration if there is no nodelist. Users with insufficient credit will
- not be allowed to send to that node.
-
-
- Saving a Message
- ----------------
- First, the program opens the disk file and writes out the header. Then it
- writes out any applicable control lines. The comes the actual message
- body. Finally, for echo messages, tear/origin lines (if not already
- present) and blank SEEN-BY and PATH lines if the program has been configured
- to do so.
-
- Then, if the message is a new reply, Falcon tries to link it onto the end of
- the reply chain, noting any other replies as it does so.
-
- Finally, it subtracts netmail credit if this is a netmail message and the
- user has a level lower than SYSOP.
-
- If Falcon can't save the message, it returns to the editor, telling the user
- to either abort or wait and try again later. The exception to this is if
- the message is being saved due to a disconnection, of course.
-
-
- The Editors Themselves
- ======================
-
- LORE ("Line ORiented Editor")
- -----------------------------
- This is for people who either have an insufficient display size or an
- insufficient/non-existent ANSI driver in their terminal program. It's
- an amalgamation of the best parts of every line editor I've ever used,
- spliced together as well as possible.
-
- Text entry in the line editor can be as simple as the average line editor:
- enter text continuously, hit return only at the end of paragraphs, and use
- backspace to erase & correct errors. Words will automatically be wrapped
- to the next line if the line nears your screen's width, so you need not hit
- return anywhere except the ends of paragraphs. (If you hit return at the
- end of each line, the message may not be formatted correctly for someone
- with a different screen width from yours.)
-
- However, this editor also allows full usage of Falcon's fairly versatile
- prompt-editing commands. Please refer to the Line Editing and Command
- History section for more information on general line editing features.
- The notable differences between the prompt and the line editor which are
- described there but which bear repeating here are as follows: using the
- up/down commands normally used to move through the line history will
- instead move through the message, and using the backspace command at the
- start of a non-first line will delete the current line if it is empty,
- then move to the previous line and make it wrap (think of it as deleting
- the carriage return if there is one).
-
- When you are finished entering text, or you want to do something like
- listing the message, you can either hit return on a blank line, or use
- ESC-ESC if that would be inconvenient (ie. editing the middle of a
- paragraph). That will take you to the Edit Menu (where you should be right
- now), which has its own documentation and therefore won't be discussed here.
- However, I will note that using I)nsert Text to move the cursor to a
- certain line may put you on the line before it if that line wraps. It
- makes sense if you think about it.
-
- Use "<space><return>" if you want to enter an actual blank line into your
- message.
-
- About entering text in the middle of the message: If you have moved the
- cursor into the middle of your message, remember that you are _inserting_
- the text, not overwriting. So you can add a paragraph to the middle of
- a message or text to the middle of a paragraph.
-
- Finally, you might note that the line number is followed by either a ":" or
- a ">". If it's followed by a ">", this is the start of a new paragraph
- (ie. you hit return on the last line), and if it's a ":", then this is a
- continuation of the previous line. Simple, huh?
-
- Note that if you are logged off for some reason, the message will be saved
- with a note to that effect at the bottom.
-
-
- FRED ("Falcon's Rapid EDitor")
- ------------------------------
- (To avoid redundancy, only the important or local-user-relevant information
- will be highlighted here. Please refer to the online help by typing "^Kh"
- for more comprehensive documentation. Obviously, the sysop can just type
- the help/longhelp.bbs file.)
-
- Suggestion: As is noted elsewhere, the cut/paste buffer is a temporary file
- in "T:". Putting "T:" on a RAM disk or on a reasonably fast hard drive is a
- good idea.
-
- A local user can click in various bits of the screen. If the click is
- between the two dividing lines around the main text, the cursor will simply
- be moved as close to the click as possible. If the cursor is already there,
- the mark will be set at that position. If the click is on one of the
- dividing lines, the result will be a page-up or -down, with the exception
- that clicking on the INSERT/OVSTRK indicator on the bottom line will toggle
- it instead of paging down. Finally, clicking on the header edits it.
-
- Also available to the local user are the usual online menus (meaning Amiga
- menus, not BBS menus), plus two new ones that are normally ghosted. Here
- they are, listed by their menu shortcuts:
-
- Fred
- ----
- S Save Simply saves the message.
- A Abort Abort the message, but only after a
- confirmation prompt
- N New (clear) Erase message and start again, but only after
- a confirmation prompt
-
- Fred-Edit
- ---------
- M Set Mark Set the mark to the current cursor position
- X Cut Cut the marked area of text out of the
- message into the cut/paste buffer
- C Copy Cut the marked area of text into the
- cut/paste buffer
- V Paste Insert the contents of the cut/paste buffer
- into the message at the cursor position
- F Import File Load a textfile into the cut/paste buffer for
- pasting into the message. Local mode only.
- K Kill Line Cut the line under the cursor out of the
- message and put it in the cut/paste buffer.
- E Kill to EOL Cut the line under and to the right of the
- cursor out of the message and put it in the
- cut/paste buffer.
- I Toggle Insert Toggle insert/overstrike mode.
-
-
- Requirements:
-
- FRED will only work for a user with a screen of minimum dimensions 60x10.
- Further, they must be calling at no less than 1200 baud, and they must have
- ANSI turned on. It should also be pointed out that their ANSI emulation
- must be sufficient. Terminals which work so far are: Any Amiga term which
- uses the console.device for screen output (95% of them do), and Telix for
- MS-DOS. Amiga's JRComm lower than v1.01 does NOT work, but v1.01+
- apparently does in IBM ANSI mode. MS-DOS's ProComm does not seem to emulate
- the codes, though I've only tried testing it with echo-back from the modem.
- I'm told the MacIntosh terminal ZTerm works. Anything else is a big
- question mark, and should be tried out. Refer to "ANSI Used in Output",
- elsewhere in this document, for more information. Please report any
- findings so they can be included in this list.
-
-
-
- 8. The Goodbye (Logoff) Sequence
- =================================
-
- This first asks the user if they are sure they want to log off. This avoids
- accidental logoffs. If they say no, they are returned to the Main Menu (note
- that it is ALWAYS the Main Menu, no matter which menu they were in when they
- tried logging off).
-
- If they are sure they want to log off, and if there is a logoff message area,
- they will be asked if they wish to leave a private message to the sysop.
- If they say yes, they will be dropped into their selected editor to leave
- such a message. Whether they save or abort, they will then be logged off
- when they exit the editor.
-
- When they are logged off, they may see a logoff text file if one has been
- created by the sysop, and then a brief message saying something to the effect
- of "Disconnecting <name> on <datestamp>." Then it will either hang up or
- perhaps return to a program which ran the BBS and let that program hang up.
-
-
-
- 9. XPR (eXternal PRotocol) File Transfers
- ==========================================
-
- The XPR transfer display shows the following information, if applicable:
-
- .----------------------------------------------------------------------.
- | Transfer type: <protocol name, ie. "Zmodem"> |
- | |
- | Last message: <last message, ie. "Sending File"> |
- | Last error: <last error, ie. "CRC error"> |
- | |
- | File name: <file name> |
- | File size: <size in bytes> |
- | |
- | Est. xfer time: <protocol's estimate> Errors: <# errors> |
- | Elapsed time: <varies> Timeouts: <# timeouts> |
- | |
- | Block size: <size in bytes> Packet type: <descr.> |
- | Blocks sent: <number of blocks> Packet delay: <not sure> |
- | Bytes sent: <amount transferred> Char. delay: <not sure> |
- | Bytes/sec: <protocol's estimate> Checksum type: <ie. CRC-16> |
- `----------------------------------------------------------------------'
-
- Note that this display loses some information, like the filename, if the
- screen is toggled because I am only allowed to display strings when I am
- told to by the protocol. The numbers are generally updated quite often, so
- they will be refreshed. Note that if you really want to see the filename
- after it's been erased by toggling the screen, the Status window will
- contain a copy of it in the Where: slot. I can remedy this loss of
- information by allocating some memory to hold the information I was last
- told about, but is it really that important?
-
- The CPS rate may be off for file sends. This is because output is buffered
- to avoid pauses while data is read from the disk, and the XPR library does
- not know that. The final CPS rate may be near correct, but the rate Falcon
- calculates after the transfer is more accurate, especially since it counts
- from the first time the two sides shake hands, instead of the time this
- side starts looking for the other side. Some people like to be thorough in
- their estimates, but I like to know how fast the transfer was going *only when
- it was actually going*.
-
- The transfer may be aborted by typing Escape, ^C, or ^X. Typing '.' toggles
- the screen mode, because there isn't a menu for it. If there was and you
- typed the Right-Amiga-'.' menu shortcut, you'd end up with a regular '.'
- anyway, thus this command. Similarly, if the transfer is taking place in the
- BBS, entering '/' or '?' will toggle the status window.
-
- The transfer will also be aborted on loss of carrier, and also by a time-up
- if it is taking place in the BBS.
-
- Note that if you have configured the program to turn off the third plane during
- transfers, to retrieve the DMA time a 3+ bitplane hires screen steals, the
- window will come up in yellow on red instead of white on blue, because the
- latter two colors are not available in the now-four-color screen. No big deal,
- but I thought I'd mention it.
-
- If a file is being received in the BBS, it will have the user's name put
- into the filenote of the file, starting at the fortieth column (which makes
- it line up neatly for the DOS List command). This is used for continuing
- or replacing files. If a user uploads to a file that already exists, their
- name is checked against the one on the file. If it matches (or, for that
- matter, if they are of SYSOP-level), they are allowed to continue the upload
- or replace the file, depending on whether or not the protocol is configured
- to resume a receive.
-
-
-
- 10. FTerm
- ==========
-
- To save the bother of exiting the BBS and loading up a terminal program,
- Falcon comes with a small terminal program that can lean on the main
- program's code to save space. It also has a timeout option, which means if
- you walk away from the terminal and forget about it, the BBS will be brought
- back up automatically after a while. It saves wear and tear on your users.
-
- Anyway, first, FTerm will load up term.bbs, and exit back to the BBS with an
- error string if something was wrong.
-
- Otherwise, if there is no carrier present, it'll display a little header with
- its name, version, copyrights, and the like, then send the term.bbs INIT
- string to the modem and drop into the terminal mode. If there IS a carrier,
- it'll just drop straight into the terminal mode without any of the intro/init
- business (note that the baud rate will be set to the maximum, which may or
- may not be correct for the current connection).
-
- There's nothing really special about the terminal itself. About all it does
- is filter out shift-in/shift-out characters, because these can put you into
- a weird mode where all characters have 128 added to them before they are
- displayed. Messy.
-
- The term menus:
-
- Menu Item Shortcut Action
- -----------------------------------------------------------------------
- Term
- Re-Load Config L Re-reads term.bbs, reinits if no carrier
- Phone dir F Enters "F"one directory, if possible
- Redial R Either continue dialing or enter phone dir
- View Buffer V Enter review buffer
- Save Buffer B Save entire review buffer to disk
- Hang up H Send term.bbs HANGUP string
- Modem re-init M Send term.bbs INIT string
- Screen Toggle . Flip between WorkBench window and full screen
- About FTerm Shows a submenu with brief information on FTerm
-
- Config
- Baud Select baud rate from submenu:
- 110 1 Change to 110 baud
- 300 2 Change to 300 baud
- 1200 3 Change to 1200 baud
- 2400 4 Change to 2400 baud
- 4800 5 Change to 4800 baud
- 9600 6 Change to 9600 baud
- 12000 7 Change to 12000 baud
- 14400 8 Change to 14400 baud
- 19200 9 Change to 19200 baud
- 38400 0 Change to 38400 baud
- Word Length Select word length from submenu (not implemented):
- 8 Change to world length 8
- 9 Change to world length 9
- Parity Select parity from submenu (not implemented):
- None Change to no parity checking
- Even Change to Even parity
- Odd Change to Odd parity
- Mark Change to Mark parity
- Stop bits Select stop bits from submenu (not implemented):
- 1 Change to 1 stop bit
- 2 Change to 2 stop bits
- Misc Miscellaneous settings
- Incoming... I Do or don't convert incoming CR's to CR/LF's
- Outgoing... O Do or don't convert outgoing CR's to CR/LF's
- Local Echo E Do or don't echo outgoing chars to the screen
- Protocol Select an XPR protocol if there are any
- None (means there aren't any)
- <protocol> <?> Change current protocol to <protocol>
-
- Transfer
- Toggle Send S Start or stop an ASCII send
- Toggle Capture C Start or stop capturing text to disk
- Upload U Upload file with the current protocol
- Download D Download file(s) with the current protocol
-
-
- Special Keys
- ------------
- The cursor keys, keypad, and function keys can all send configurable strings.
- See term.bbs documentation.
-
- The Help starts review buffer. Since it also exits the review buffer, one
- could think of it as a toggle, really.
-
-
- Transfers
- ---------
- The ASCII send just sends the data in a file straight to the modem, with
- the pauses set up in term.bbs, and possibly CR->CR/LF translation depending
- on whether or not it's been turned on.
-
- The ASCII capture writes incoming data to a file. Note that it captures ALL
- characters, including ANSI sequences.
-
- Downloading may ask for both a directory and a filename, or just a directory.
- This is based on whether or not the program has been told that the current
- protocol will be told the filenames by the sender.
-
- Uploading will ask for both a directory and a filename. Sorry, I haven't
- gotten around to batch sends.
-
- Both downloading and uploading will finish by showing the total transfer time,
- the return code from the protocol (which may not be a reliable indicator of
- the transfer's success, by the way), and a chars/sec rating for the entire
- transfer. Note that this CPS rate will be more accurate for uploads, because
- the output buffering the program does often confuses the library.
-
-
- In Case of Problems with Display Positioning
- --------------------------------------------
- As it happens, bringing up the review buffer or the dialing directory also
- resets the positioning of the display. You see, certain ANSI codes can move
- the location (in pixels) of the upper left corner of the character display.
- If your text seems out-of-place, try doing something to clear the screen (to
- make sure the code that caused it isn't displayed again when the display is
- refreshed), then enter and exit the review buffer or the dial directory.
-
-
- The Review Buffer
- -----------------
- The review buffer is used to look back through text that may have scrolled off
- of the screen. It holds the last N bytes (where N is the number from
- falcon.cfg's REVBUFSIZE command) of text displayed to the screen, including
- both the text displayed in the term AND any text displayed while in the BBS,
- since the review buffer doubles as a sort of memory of what's been on the
- screen even when the program is in tiny mode.
-
- The review buffer will take your screen size and font into account, and put
- as many lines of review text into your screen as it can, except for the
- top and bottom lines, which are used for a title bar and a gadget bar.
- This review text will have the color stripped out, which allows for much,
- much faster scrolling when moving about. It does, however, understand
- the ANSI cursor-movement codes, and backspaces, and the like, so everything
- should come out in the right place... just in monochrome. Actually, I
- should note that it can't work with move-to-row,col commands, so full-screen
- editing sessions tend to end up all on one line, which is just as well.
-
- The gadget bar contains seven gadgets:
- DONE Exits review buffer
- TOP Moves to earliest part of buffer
- END Moves to most recent part of buffer
- PGUP Moves back one page in buffer
- PGDN Moves forward one page in buffer
- /\ Moves back one line in buffer
- \/ Moves forward one page in buffer
-
- There are also key commands:
- Up Moves back one line in buffer
- Down Moves forward one line in buffer
- PgUp Moves back one page in buffer (also Shift-Up)
- PgDn Moves forward one page in buffer (also Shift-down)
- Home Moves to earliest part of buffer
- End Moves to most recent part of buffer
- . Toggles screen mode, because there isn't a menu for it. If
- there was and you typed the Right-Amiga-'.' menu shortcut,
- you'd end up with a regular '.' anyway, thus this command.
-
- Left, Right, Help, Space, Q, Escape, Return all exit the Review Buffer
-
- On exit, the text that was on the screen before will be refreshed to the best
- of the buffer's ability, for you to continue your session.
-
-
- File Requester
- --------------
- I'm not using any special file requester at the moment. It's just two
- prompts. This is because I've foolishly been expecting Commodore to release
- 2.0 for the last year and a half, at which point I would use the built-in
- requester. (Note: CBM finally announced that 2.0 will be released next
- month (October), so I've removed the very nasty remark that used to be in
- this spot.)
-
- At any rate, it simply asks for a directory, with a path already filled in
- based on the defaults set in term.bbs. Use ^X to kill it and enter another.
- Then it may ask for a filename, which should be easy enough for a genius like
- you to figure out without instructions.
-
-
- Dial Directory
- --------------
- First, it should be noted that one cannot bring up the dialer if there is
- a carrier present, or if there are no entries in the directory.
-
- The dial directory will take your screen size and font into account, and put
- as many directory entries into your screen as it can, except for the top and
- bottom lines, which are used for a title bar and a gadget bar.
-
- Each entry in the directory will contain the name of a BBS (or person, or
- whatever), the number, the baud rate, and a comment. The entry which is
- inverted is the entry the cursor is currently on, although in some cases it
- may not be inverted (see below). An entry with a purple background is
- selected.
-
- The gadget bar contains four gadgets, along with the entries:
- OKAY Start dialing the currently-selected entries, in order
- CANCEL Return to term without dialing
- /\ Scroll window back one line, if possible
- \/ Scroll window forward one line, if possible
-
- <entry> Each entry can be toggled by clicking on it. Note that this
- moves the cursor to that entry and makes it (the cursor)
- invisible.
-
- There are also key commands:
- Up, Left
- Move cursor back one entry if possible, and make it visible
- if it isn't. Scrolls window if necessary.
- Down,Right
- Move cursor forward one entry if possible, and make it visible
- if it isn't. Scrolls window if necessary.
- Home, Shift-Up, Shift-Left
- Move cursor to top entry in window, and make it visible if it
- isn't.
- End, Shift-Down, Shift-Right
- Move cursor to top entry in window, and make it visible if it
- isn't.
- Q, Esc Return to term without dialing
- Return Start dialing the currently-selected entries, in order
- Space Selects/deselect entry under cursor, and make it (the cursor)
- visible if it isn't.
- . Toggles screen mode, because there isn't a menu for it. If
- there was and you typed the Right-Amiga-'.' menu shortcut,
- you'd end up with a regular '.' anyway, thus this command.
-
-
- Dialer
- ------
- The dialer will dial all selected entries, starting with the ones nearest the
- top of the directory, going down, and starting again at the top when it hits
- the end. If there are no entries selected (due to deletions or none to begin
- with), it will return to the directory.
-
- The display takes up the top 8 lines of the display, top and bottom being the
- title and gadget bars. The ones between show the current name and number,
- number of attempts, the time left for the current attempt or pause between
- attempts, and the last string received from the modem.
-
- To dial, the program sends the term.bbs DIAL string to the modem, the phone
- number, and the falcon.cfg ENDOFLINE string. It then waits for DIALTIME
- seconds. If it receives a CONNECT_* string, it will return to the term
- with the baud rate after deselecting the current entry. It may also connect
- at the current baud rate if it receives no string but sees a carrier.
- If it doesn't connect within the time limit, it sends the STOPDIAL string
- and waits BETWEENTIME seconds before starting again with the next entry.
-
- Note that if someone attempts to phone you between attempts, the term may
- detect it, and if set to in term.bbs, will exit and let it continue to
- ring so that you can answer it.
-
- The gadget bar contains four gadgets:
- OKAY Connect without waiting. Meaning, return to the term at the
- current entry's baud rate after deselecting the current entry.
- CANCEL Hang up, stop dialing, and return to the directory.
- SKIP Hang up and skip to the next selected entry.
- DELETE Hang up, deselect the current entry, and skip to the next
- selected entry.
-
- There are also key commands:
- Tab, Space
- Hang up and skip to the next selected entry.
- C Connect without waiting. Meaning, return to the term at the
- current entry's baud rate after deselecting the current entry.
- Esc, Q Hang up, stop dialing, and return to the directory.
- Del, Backspace
- Hang up, deselect the current entry, and skip to the next
- selected entry.
- . Toggles screen mode, because there isn't a menu for it. If
- there was and you typed the Right-Amiga-'.' menu shortcut,
- you'd end up with a regular '.' anyway, thus this command.
-
-
-
- 11. Configuration Files
- ========================
-
- Falcon's config files all follow the same basic syntax:
-
- word is a non-quoted whitespace-terminated series of chars
- ie. 'Main' in the menus.bbs command 'MENU Main'
- num is a word that only contains digits, possibly preceded
- by a '-', ie. the arguments in 'DEF_DAY_TIME 1 2 3 4 5 -1'
- str is a quote terminated series of chars
- ie. '"ATZ\r"' in the Falcon.cfg command 'RESET "ATZ\r"'
-
- if a str can fit into a word, it is permissible to omit
- the quotation marks, ie. 'ADDRESS 1:140/22.2@FidoNet'
- instead of 'ADDRESS "1:140/22.2@FidoNet"'
-
- Whitespace is one or more of the following: tab, space, or carriage return.
-
- Commands are generally words. Arguments may be any combination of words
- and strings.
-
- Strings have special escape chars that are interpreted when they are read
- into memory:
-
- \n newline (linefeed, ASCII 10, ^J)
- \r carriage return (ASCII 13, ^M)
- \t tab (ASCII 9, ^I)
- \b backspace (ASCII 8, ^H)
- \f formfeed/screen-clear (ASCII 12, ^L)
- \e escape (ASCII 27, ^[)
- \nnn ASCII character with octal value nnn (may be \n or \nn)
- \xnn ASCII character with hex value nn (may be \xn)
- \innn ASCII character with integer value nnn (may be \in or \inn)
- \<c> character <c> (used for backslash, for instance: "\\" -> "\")
-
- ^<c> Control character, <c> in "A..Z[\]^_", such as ^C, ^[, or ^^.
- Use "\^" for an actual caret character.
-
- And for modem strings only:
-
- \w pause for ~1/3 sec
- \d drop DTR for the time given in falcon.cfg's DTR_DOWNTIME
-
- NOTE: Dropping DTR may not work on some multi-serial cards.
- It will if the modem has DTR ignored or forced on. Also, it will
- not work if another program still has the serial device open,
- because the only way to drop DTR is to completely close the
- device. Use the usual "\w\w\w+++\w\w\w\rATH0\r"-style string if
- so.
-
- Note that configuration files are not normally order-dependant regarding
- the various control commands. Meaning, it doesn't matter if you say:
-
- BEGINTINY TINY_POS 123 45
-
- or
-
- TINY_POS 123 45
- BEGINTINY
-
- or
-
- BEGINTINY
- <rest of file>
- TINY_POS 123 45
-
- Exceptions to this rule are pointed out, like where the msgareas.bbs AREA
- command picks current area (for all subsequent commands to act on), or
- where the term.bbs DIRECTORY command indicates that the phone directory is
- from here to the end of the file. Get the idea?
-
- Commands which define a path will have a "/" appended to the name if
- necessary. Unnecessary cases are blank paths (current directory) and
- paths which end in ":".
-
-
- Comments are the same as in most config/batch files: A ';' means that the
- rest of the line is a comment. Note that you may have to put at least one
- space before the ";", or it may be considered a part of the last item on
- the line. A ";" may not come in the middle of a command. For instance,
- a command with four arguments:
-
- CMD arg1 arg2 arg3 arg4 ; parser will ignore this comment
-
- CMD arg1 arg2 arg3 arg4; parser will think the ";" is part of "arg4"
- ; and not realize the rest was a comment
-
- CMD arg1 arg2 ; parser will think this comment is arguments
- arg3 arg4 ; and then barf on these two
-
- The reason comments are only allowed between commands is because the ';'
- may be needed as an argument somewhere, somewhen.
-
-
- Falcon.cfg
- ----------
- Falcon looks for Falcon.cfg in the current directory, in S:, and in FALCON:.
- It is also possible to pass a path/name on the command line. This file is
- for general configuration of the BBS, ie. bbs/sysop name, modem strings,
- address, protocols, etc.
-
- 7WIRE
- Usage: 7WIRE
- Default: not 7-wire
-
- Determines whether or not to use 7-wire serial handshaking. This
- is usually used for high-speed modems.
-
- ACKNOWLEDGE
- Usage: ACKNOWLEDGE str
- Default: "OK"
-
- This is the modem return string that would normally be returned after
- a successful command. However, I never did get around to actually
- using it. <meek grin>
-
- ADD_BLANK_SEENBY
- Usage: ADD_BLANK_SEENBY
- Default: don't add it
-
- Using this flag causes echo messages to be saved with blank SEEN-BY:
- and PATH: control lines. This can solve problems if echo message
- processors (I'm thinking of ConfMail specifically) add extra, unwanted
- blank lines around the SEEN-BY lines. I seem to recall another reason
- that this may be necessary, but what I can't recall is what is was.
- Oh well, it's here if you need it.
-
- ADDRESS
- Usage: ADDRESS fidonet_address.str
- Default: 0:0/0.0
-
- This sets the BBS's FidoNet-style address. It can be in several forms:
-
- zone:net/node (no domain)
- zone:net/node.point (no domain)
- zone:net/node@domain
- zone:net/node.point@domain
-
- It is suggested that you use a domain, usually "FidoNet". This address
- can be entered without any quotes, but since it is technically a string,
- you can put quotes around it if you need them.
-
- See also: POINTNET
-
- APPFILE
- Usage: APPFILE filename.str
- Default: (no application file)
-
- The name of the new user application file, if you want one.
-
- ATTENTION
- Usage: ATTENTION str
- Default: "AT"
-
- This string is the modem command prefix. It starts off a command,
- but if an ENDOFLINE is send immediately, it a no-operation. It
- should not have an ENDOFLINE in it, since that is what ENDOFLINE is
- for.
-
- See also: ENDOFLINE
-
- AVOID
- Default: AVOID str
- See also: "+"
-
- If user types the first character of this string (later, if
- circumstances require, I may change it so that you can check a whole
- bunch of characters, but not now), then when the character is sent to
- the modem, a NUL (ASCII 0) character is also sent. This is to prevent a
- user from putting your modem into command mode, for all the good it
- would do them anyway.
-
- See also: ESCAPE, HANGUP
-
- BEGINSTATUS
- Usage: BEGINSTATUS
- Default: begin without status
-
- Determines whether status window is opened when the program is started.
-
- See also: STATUS_POS
-
- BEGINTINY
- Usage: BEGINTINY
- Default: begin large
-
- Determines which screen mode to begin with: The WorkBench "idiot bar"
- or the large display. You should always keep the BBS in tiny mode when
- you are not actively watching it for some reason, because not only is
- it a waste of chip memory, but the large display also scrolls slowly
- and therefore slows down output.
-
- See also: TINY_POS
-
- BUSY
- Usage: BUSY str
- Default: "BUSY"
-
- If the dialer gets this from the modem instead of a CONNECT message
- or a NOGOOD message, it skips to the next number.
-
- See also: NOGOOD1, NOGOOD2, CONNECT
-
- BYTEFILEOK
- Usage: BYTEFILEOK
- Default: cannot send 1 byte files
-
- The recent implementation of XPRZmodem falls prey to a division by zero
- software error if it tries to send a one byte file. I think this is
- because Falcon buffers the output and therefore seems to send the file
- in zero seconds. When XPRZ tries to calculate the characters/second
- value, *poof*, division by zero, software error, down goes the system.
- At any rate, this is here in case you need to send one byte files for
- some insane reason.
-
- CBMENV
- Usage: CBMENV
- Default ARP/Manx/Rokicki environment variables
-
- Setting this flag causes Falcon to use CBM ENV:-style environment
- variables instead of the ARP/Manx/Rokicki style.
-
- CHAT_EXEC
- Usage: CHAT_EXEC dos_command.str
- Default: none
-
- This AmigaDOS command is called when a user Y)ells for the Sysop.
- It must be run and the output must be redirected to NIL:.
-
- Example: "run >NIL: playsound wantchat.sound"
-
- Naturally, "run >NIL:" may be replaced with your preferred command.
-
- CMDPAUSE
- Usage: CMDPAUSE pause.num
- Default: 50
-
- Wait this many 50ths (or maybe it's 60ths?) of a second after each
- modem command.
-
- CONFIGDIR
- Usage: CONFIGDIR path.str
- Default: "" (current dir)
-
- Where to find the following files: english.bbs, msgareas.bbs,
- fileareas.bbs, sched.bbs, menus.bbs, term.bbs, systemstat.dat, and
- possibly some I forgot.
-
- See also: HELPDIR, TEXTDIR, NODELISTDIR, USERDIR, KEYDIR
-
- CONNECT
- Usage: CONNECT baud.num flags.word connect.str or
- CONNECT FIND flags.word connect_template.str
- Defaults: 300 - "CONNECT"
- 300 A "CONNECT/ARQ"
- FIND - "CONNECT %lu"
- FIND A "CONNECT %lu/ARQ"
-
- This command adds a connect string to the list of default strings that
- Falcon understands to mean that a modem connection has been made.
- Using a combination of set-baud-rate and dynamic-baud-rate strings,
- accommodating pretty much any modem's crazy connect strings should be
- possible.
-
- The four defaults should cover most modems, including HSTs. Note that
- the version which FINDs the speed dynamically from the string it gets
- from the modem MUST have the "%lu" (in lowercase) where the baud rate
- should be in order to work.
-
- The flags argument currently only recognizes one flag, which is the
- 'A' ARQ flag. If there are others that should be included (note that
- their only real use at this point is more descriptive logging of a
- connect mode), let me know.
-
- Note that the term cannot set the baud rate to anything other than 300,
- 1200, 2400, 4800, 9600, 12000, 14400, 19200, and 38400 baud, but the BBS
- should be able to handle any number. I'll see if I can work out a way
- to get the term to use odd rates too, the problem being mostly in the
- rigid Baud submenu.
-
- CONNECT_MINBAUD
- Usage: CONNECT_MINBAUD minbaud.num
- Default: 0 (no minimum)
-
- Users cannot log on if their baudrate is below this number.
-
- See also: TRANSFER_MINBAUD, sched.bbs/EVENT
-
- CONNECTTIME
- Usage: CONNECTTIME seconds.num
- Default: 1 second
-
- This is the number of seconds to pause after BBS connects and before
- either starting up the ESCESC sequence or starting the session.
- The reason for this dead time is that even slower modems may take a
- little too long to recognize the connect (at the calling end) and
- therefore may miss some text if there is no short pause.
-
- See also: ESCTIME, ESCESC
-
- CONTENTS
- Usage: CONTENTS extension.str do.str
- Default: no content viewers
-
- These are used by the C)ontents command in the File Menu. If you have
- a program to view the contents of a certain kind of file (usually
- identified by the "extension" field), include it in the "do" field.
- Then the "do" string will be executed as a DOS command, and its output
- will be printed. This version of the "do" string must have three "%s"'s
- in it, in this order: The first %s in the string will be where file
- output is redirected, and should normally be immediately after a ">".
- The second %s is the pathname, and is guaranteed to end with ":" or "/",
- unless it is blank, in which case it will stay blank. The third %s is
- the filename. The full command will usually look like:
-
- CONTENTS ".EXT" "program >%s view_options \"%s%s\""
-
- ie. CONTENTS ".ARC" "arc >%s -vw \"%s%s\""
-
- (results in 'arc >T:tempfile -vw "FILES:gen/zeebie.arc"')
-
- Make sure you use the \" escape codes to put quotation marks around the
- path/name, or a space in the path or name might screw things up. Also,
- disable any prompts that may come up during program execution if you
- can.
-
- Note: an extension of "" will match any file; use it if you have some
- sort of all-purpose viewer like PolyXArc.
-
- Alternative:
-
- If you know the file contents cannot be viewed, put a "*" at the start
- of the "do" string, and the rest of it will be shown as "That is
- <str>". For instance,
-
- CONTENTS ".MAC" "*probably a Macintosh picture"
-
- will come back as "That is probably a Macintosh picture." for any file
- ending in ".MAC".
-
- DATESTAMP_11W
- Usage: DATESTAMP_11W
- Default: SEAdog datestamps
-
- This determines what format the datestamp will take in new messages.
- Some processors have trouble with the default (prettier) SEAdog
- format.
-
- The look like: SEAdog: "Tue 1 Jan 91 01:23"
- Fido 11w: "01 Jan 91 01:23:45"
-
- DEF_CALL_DL
- Usage: DEF_CALL_DL twit.num disgrace.num normal.num privil.num
- assist.num sysop.num
- Default: 150 450 900 1350 1800 -1
-
- Sets the default call download limits for all user levels. This is used
- for new users and for changing a user's level. A limit of -1 means
- unlimited (within time limits, of course).
-
- These are roughly equivalent to a 2400 baud transfer during the user's
- available time for the call.
-
- See also: DEF_CALL_TIME, DEF_DAY_TIME, DEF_DAY_DL
-
- DEF_CALL_TIME
- Usage: DEF_CALL_TIME twit.num disgrace.num normal.num privil.num
- assist.num sysop.num
- Default: 10 30 60 90 120 -1
-
- Sets the default call time limits for all user levels. This is used
- for new users and for changing a user's level. A limit of -1 means
- unlimited, except for events.
-
- See also: DEF_CALL_DL, DEF_DAY_TIME, DEF_DAY_DL
-
- DEF_COST
- Usage: DEF_COST cents.num
- Default: 25 cents
-
- This is used for non-local netmail if there is no nodelist available
- to determine the cost.
-
- Apologies to those in countries that do not use dollars and cents.
- That may be a little more flexible in the future.
-
- DEF_DAY_DL
- Usage: DEF_DAY_DL twit.num disgrace.num normal.num privil.num
- assist.num sysop.num
- Default: 300 900 1800 2700 3600 -1
-
- Sets the default daily download limits for all user levels. This is
- used for new users and for changing a user's level. A limit of -1 means
- unlimited (within time limits, of course).
-
- These are roughly equivalent to a 2400 baud transfer during the user's
- available time for the day.
-
- See also: DEF_CALL_TIME, DEF_CALL_DL, DEF_DAY_TIME
-
- DEF_DAY_TIME
- Usage: DEF_DAY_TIME twit.num disgrace.num normal.num privil.num
- assist.num sysop.num
- Default: 20 60 120 180 240 -1
-
- Sets the default daily time limits for all user levels. This is used
- for new users and for changing a user's level. A limit of -1 means
- unlimited, except for events.
-
- See also: DEF_CALL_TIME, DEF_CALL_DL, DEF_DAY_DL
-
- DEPTH
- Usage: DEPTH depth.num
- Default: 3 bitplanes
-
- Depth of large display's screen in bitplanes), 1-4 in hires, and
- 1-5 in lores.
-
- See also: WIDTH, HEIGHT, INTERLACE, LORES, PALETTE
-
- DEVICE
- Usage: DEVICE library_name.str unit.num flags.num
- Default: "serial.device" 0 0
-
- Selects the device driver for serial IO. Use a name of "" for a local-
- only operation.
-
- DIAL
- Usage: DIAL str
- Default: "ATDT"
-
- This string is the modem dialing command prefix. It should not have an
- ENDOFLINE string in it, since that string is automatically appended.
-
- See also: ENDOFLINE
-
- DIALTIME
- Usage: DIALTIME seconds.num
- Default: 30 seconds
-
- This is the amount of time the program will wait for carrier after
- dialing.
-
- See also: WAITTIME
-
- DOWNLOAD_NOLOG
- Default: DOWNLOAD_NOLOG
- Default: log downloads
-
- This flag merely tells the program not to log downloads. Useful in
- a system with a large volume of downloads.
-
- DTR_DOWNTIME
- Usage: DTR_DOWNTIME pause.num
- Default: 50
-
- Wait this many 50ths (or maybe it's 60ths?) of a second between
- dropping DTR and raising it again (to hang up).
-
- EDITOR_LINES
- Usage: EDITOR_LINES lines.num
- Default: 1024
-
- Maximum number of lines in the message editors.
-
- ENDOFLINE
- Usage: ENDOFLINE str
- Default: "\r"
-
- This string is the modem command suffix. It ends and enters a modem
- command string.
-
- See also: ATTENTION
-
- ENV_VAR_NAME
- Usage: ENV_VAR_NAME var_name.str
- Default: "fret"
-
- This is the name of the environment variable to be send for returning
- strings to DOS when the program exits. It is also read in certain
- parts of the program.
-
- ERRL_NONE
- ERRL_MATRIX
- ERRL_ECHO
- ERRL_BOTH
- ERRL_FAILED
- Usage: ERRL_???? errorlevel.num
- Default: 0, 1, 2, 3, 20, respectively
-
- If the BBS failed, ERRL_FAILED is returned to DOS.
-
- If the BBS worked, ERRL_NONE is returned if no echo or matrix messages
- were entered, ERRL_MATRIX if matrix messages were entered, ERRL_ECHO
- echo messages were entered, and ERRL_BOTH if both matrix and echo
- messages were entered.
-
- ESCAPE
- Usage: ESCAPE str
- Default: "\w\w\w+++\w\w\w"
-
- This modem string is intended to get the modem out of online mode into
- command mode.
-
- See also: HANGUP, AVOID
-
- ESCESC
- Usage: ESCESC
- Default: no Esc-Esc sequence
-
- If this flag is set, the BBS will not start up until two ESCs have
- been typed. This is useful if HST callers are having problems with
- long handshake (MNP, I think) times after connect and missing some or
- all of the intro text. If the handshaking goes on long enough, garbage
- may even be entered at the name prompt if there is nothing to prevent
- it.
-
- This wait for two escapes goes on for thirty seconds, then the BBS
- automatically starts up the session as if two escapes had been typed.
-
- See also: ESCTIME, CONNECTTIME
-
- ESCTIME
- Usage: ESCTIME seconds.num
- Default: 5 seconds
-
- If ESCESC has been specified, this is the number of seconds to look
- for a carriage return. If a carriage return is received during this
- time, the BBS jumps straight to the ESCESC sequence. Otherwise
- the ESCESC sequence is started after the time runs out.
-
- Try to arrange it so that this command plus the CONNECTTIME command
- are long enough that all HST (or other high speed modem) handshaking
- is over just before the time is up. That way HST users see the
- "Hit ESC twice..." message just after connect, and other users can
- hit return to get there sooner. I suggest either CONNECTTIME 1
- ESCTIME 6 or CONNECTTIME 0 ESCTIME 7.
-
- See also: ESCESC, CONNECTTIME
-
- EXIT
- Usage: EXIT str
- Default: whatever RESET was set to
-
- This modem command is sent when Falcon exits. It can do whatever you
- want, but normally that's nothing more than a simple reset.
-
- See also: RESET
-
- EXPORTFILE
- Usage: EXPORTFILE filename.str
- Default: (no export file)
-
- Given this filename, Falcon will create, on exit, a ConfMail-style list
- of area labels needing exporting.
-
- See also: msgareas.bbs/LABEL
-
- FONT
- Usage: FONT fontname.str height.num
- Default: "topaz.font" 8
-
- This is the font used in the large/full-screen display.
-
- See also: FONTWIDTH
-
- FONTWIDTH
- Usage: FONTWIDTH width.num
- Default: font's real width
-
- You can set a font's width with this command. If you're fiddling about
- with a proportional large display font, you might want to try setting
- this to 8. However, this actually changes the font for ALL applications
- that may be using it, so it is only to be used for experimentation. Do
- not use it regularly.
-
- FRONTDOOR
- Usage: FRONTDOOR dos_command.str
- Default: no front door
-
- If given, this DOS command will be called after connect. The
- environment variable given in ENV_VAR_NAME will be set to the connecting
- baud rate, and if it's set to "nospawn" on return, Falcon will hang up
- and return to the waiting state, else it will start up the BBS.
-
- Normally you will not use this for front door programs, because the
- front door usually calls YOUR program, and not vice-versa. However, I
- was messing around with something that worked this way and did not see
- any reason to take it out afterward. It might be useful.
-
- See also: ENV_VAR_NAME
-
- HANGUP
- Usage: HANGUP str
- Default: "\w\w\w+++\w\w\wATH0\r"
-
- This modem command should hang up the modem from any mode. If your
- modem will hang up on DTR being dropped, and you are not forcing DTR
- to stay on, and there is no other program using your unit of the serial
- device (because the only way to drop DTR is to completely close out the
- device), you can substitute "\d" here to drop DTR. It is a much cleaner
- disconnect that way.
-
- Note: If you are running with a modem that does internal buffering,
- as some HSTs do, and you wish to hang up with DTR, you should add
- a few waits before you drop it so that the last bit of text can be
- output. There IS a one-second pause before the HANGUP string is
- sent, but you may need more, ie. "\w\w\w\d" to wait an additional
- second.
-
- HEIGHT
- Usage: HEIGHT height.num
- Default: normal height
-
- Height of large display's screen in *** NON-INTERLACE *** pixels.
- If you want an interlaced screen 420 pixels high, this should be
- specified with "HEIGHT 210".
-
- See also: WIDTH, DEPTH, INTERLACE, LORES, PALETTE
-
- HELPDIR
- Usage: HELPDIR path.str
- Default: "" (current dir)
-
- Where to find help files ("#?help.bbs").
-
- See also: TEXTDIR, CONFIGDIR, NODELISTDIR, USERDIR, KEYDIR
-
- INACTIVETIME
- Usage: INACTIVETIME seconds.num
- Default: 270 seconds
-
- After this amount of time, the user will be logged off for inactivity.
-
- See also: RESPONDTIME
-
- INIT
- Usage: INIT str
- Default: "ATZ\r\w\w\wATE0M0\r" (no echo, speaker off)
-
- This modem command is sent before the BBS starts to wait for a call.
- It should do things like turn off the speaker so that your modem
- doesn't wake you up in the middle of the night.
-
- INTERLACE
- Usage: INTERLACE
- Default: non-interlaced
-
- Turns on interlace for the large display's screen.
-
- See also: WIDTH, HEIGHT, DEPTH, LORES, PALETTE
-
- KEYDIR
- Usage: KEYDIR path.str
- Default: "" (current dir)
-
- Where to find falcon.key.
-
- See also: HELPDIR, TEXTDIR, CONFIGDIR, NODELISTDIR, USERDIR
-
- LOCAL_OFFHOOK
- Usage: LOCAL_OFFHOOK
- Default: on hook
-
- Using this flag makes your phone go off the hook when you log in
- locally. Otherwise the phone can ring.
-
- See also: MAKEBUSY, OFFLINE
-
- LOCK_PORT
- Usage: LOCK_PORT baud.num
- Default: don't lock port
-
- Lock the serial port at a certain baud rate, and pretend it's at
- whatever other baud rate it connects at. This is a method used
- by high-speed modems to cut down on overhead.
-
- LOGFILE
- Usage: LOGFILE filename.str
- Default: (no log file)
-
- The name of the system log file, if you want one.
-
- LORES
- Usage: LORES
- Default: hires
-
- Causes large display's screen to be in lores.
-
- See also: WIDTH, HEIGHT, DEPTH, INTERLACE, PALETTE
-
- MAKEBUSY
- Usage: MAKEBUSY str
- Default: "ATH1\r"
-
- This modem command makes the phone busy for local logins if
- LOCAL_OFFHOOK has been specified.
-
- See also: OFFLINE, LOCAL_OFFHOOK
-
- MAXBAUD
- Usage: MAXBAUD baud.num
- Default: 300
-
- The best speed your modem can connect at.
-
- See also: LOCK_PORT
-
- NAME
- Usage: NAME bbsname.str
- Default: "Unnamed System"
-
- This is, quite simply, the name of the BBS.
-
- NEWUSERLEVEL
- Usage: NEWUSERLEVEL level.word
- NEWUSERLEVEL NOT
-
- This sets the level that new users will be given. Using NOT instead
- of a level will disallow new users.
-
- NODELISTDIR
- Usage: NODELISTDIR path.str
- Default: "" (current dir)
-
- Where to find a TrapList (traplist.library) format nodelist. Note that
- at the time of writing, the version of TrapList needed by Falcon is
- still unavailable to the general public.
-
- See also: HELPDIR, TEXTDIR, CONFIGDIR, USERDIR, KEYDIR
-
- NOGOOD1
- Usage: NOGOOD1 str
- Default: "NO CARRIER"
-
- If the dialer gets this from the modem instead of a CONNECT message
- or a BUSY message, it skips to the next number.
-
- See also: NOGOOD2, CONNECT, BUSY
-
- NOGOOD2
- Usage: NOGOOD2 str
- Default: "VOICE"
-
- If the dialer gets this from the modem instead of a CONNECT message
- or a BUSY message, it skips to the next number.
-
- See also: NOGOOD1, CONNECT, BUSY
-
- OFFLINE
- Usage: OFFLINE str
- Default: "ATH0\r"
-
- This modem command is used to hang up the phone after the MAKEBUSY
- string has been sent to tie up the phone during a local login. Note
- that the difference between HANGUP and OFFLINE is that this command
- is meant to be sent from command mode.
-
- See also: MAKEBUSY, LOCAL_OFFHOOK
-
- PALETTE
- Usage: PALETTE color_0.num ... color_<palette_size>.num
- Default: 000 B00 070 AA0 00A A0A 09C BBB
-
- Large display's screen colors, set to an IBM-style set which doesn't
- flicker too much in interlace. You can change them, but I suggest
- keeping the general IBM configuration of black, red, green, yellow,
- blue, purple, cyan, and white.
-
- See also: WIDTH, HEIGHT, DEPTH, INTERLACE, LORES
-
- PICKUP
- Usage: PICKUP str
- Default: "ATA\r"
-
- This string is sent to the modem when the BBS receives a RING string.
- It picks up the phone with an answer carrier, and starts looking for
- the CONNECT strings.
-
- See also: RING, CONNECT
-
- POINTNET
- Usage: POINTNET pointnet.num
- Default: (no pointnet kludge)
-
- This affects netmail addressing for points. If your boss issues you
- a pointnet, include it here. The difference is invisible in the BBS,
- where all addressing will appear to be normal, but will in fact be
- zone:pointnet/point behind the scenes. However, you need not concern
- yourself with the whys and hows of it.
-
- See also: ADDRESS
-
- RESET
- Usage: RESET str
- Default: "ATZ\r"
-
- This command resets the modem.
-
- RESPONDTIME
- Usage: RESPONDTIME seconds.num
- Default: 180 seconds
-
- After this amount of time, there will be a message issued to the user
- that they should respond soon (or else be logged off for inactivity).
-
- See also: INACTIVETIME
-
- REVBUFSIZE
- Usage: REVBUFSIZE bytes.num
- Default: 4096 bytes
-
- Determines the size of the screen history buffer, which keeps track of
- what was on the screen even when it was in tiny mode. This buffer is
- also the terminal's review buffer. Minimum 1024 bytes
-
- RING
- Usage: RING str
- Default: "RING"
-
- If Falcon receives this from the modem, it sends the PICKUP string
- to answer the phone. It is also used in the terminal to detect an
- incoming call during dialing.
-
- See also: PICKUP
-
- STATUS_POS
- Usage: STATUS_POS x.num y.num
- Default: 0 0
-
- Where to put status window.
-
- See also: BEGINSTATUS
-
- STOPDIAL
- Usage: STOPDIAL str
- Default: whatever HANGUP was set to
-
- This is sent to the modem when aborting a dial that has taken too long.
- It defaults to the full HANGUP string, but if you can just hit space or
- return to abort when your modem is calling out, then use that. I do.
-
- See also: HANGUP
-
- SYSOP
- Usage: SYSOP sysopname.str
- Default: "Sysop"
-
- This has two uses. First, you log into your BBS with this name and
- the program will set you up as the Sysop. Second, this name is used
- for redirecting mail sent to "Sysop".
-
- TEXTDIR
- Usage: TEXTDIR path.str
- Default: "" (current dir)
-
- Where to find the following text files: welcome1.bbs, welcome2.bbs,
- bulletin#?.bbs, quotes.bbs, editorial.bbs, newuser.bbs, yell.bbs,
- warning.bbs, logoff.bbs, and possibly some I forgot.
-
- See also: HELPDIR, CONFIGDIR, NODELISTDIR, USERDIR, KEYDIR
-
- TINY_POS
- Usage: TINY_POS x.num y.num
- Default: 0 0
-
- Where to put Workbench "idiot bar" horizontally.
-
- See also: BEGINTINY
-
- TRANSFER_MINBAUD
- Usage: TRANSFER_MINBAUD minbaud.num
- Default: 0 (no minimum)
-
- Users cannot transfer files if their baudrate is below this number.
-
- See also: CONNECT_MINBAUD, sched.bbs/EVENT
-
- TRANSFER_PRI
- Usage: TRANSFER_PRI priority.num
- Default: same as program
-
- You can set the task priority of Falcon during transfers with this.
- However, this is mostly meant for testing. Upping the priority can
- bog down or lock out other tasks if you've got a CPU-intensive
- protocol, and for that matter, lowering it could result in the
- protocol itself being bogged down or locked out. You should not use
- this.
-
- TRANSFER_TWOPLANES
- Usage: TRANSFER_TWOPLANES
- Default: Normal number of planes
-
- Since 3 planes in hires (which is the normal setting for the large
- display) steals DMA time, it is suggested that this be used with
- high-speed modems. As a matter of fact, it should be used with ALL
- modems, since it'll always save CPU time, and there is no reason not
- to do it.
-
- USERDIR
- Usage: USERDIR path.str
- Default: "" (current dir)
-
- Where to find user.bbs.
-
- See also: HELPDIR, TEXTDIR, CONFIGDIR, NODELISTDIR, KEYDIR
-
- WAITTIME
- Usage: WAITTIME seconds.num
- Default: 2 seconds
-
- This is the amount of time the program will wait between hanging up
- on a failed dial and dialing again.
-
- See also: DIALTIME
-
- WIDTH
- Usage: WIDTH width.num>
- Default: normal width
-
- Width of large display's screen in pixels.
-
- See also: HEIGHT, DEPTH, INTERLACE, LORES, PALETTE
-
- XPR
- Usage: XPR bbs_char.char menu_shortcut.char flags.word
- 300.num 1200.num 2400.num 4800.num 9600.num
- name.str library.str config.str
- Default: no protocols available
-
- Each XPR command adds an XPR protocol with the given name. The bbs_char
- field is the character used to select the transfer type (ie. the 'Z' in
- "D Z file", to download with Zmodem). Use '-' if you don't want the
- protocol available in the BBS. The menu_shortcut field is used in the
- terminal, and is the letter shown in the right of a menu item. Make
- sure no other menu items in the terminal have the same letter. The
- 300..2400 fields are approximate chars/sec estimates for each baud rate,
- used for estimating download times. The library field is the name of
- the XPR-format library, ie. "xprzmodem.library". The config string is
- the library's config string, and should be described in each protocol's
- documentation.
-
- The flags are as follows:
-
- R ... The protocol is capable of resuming a transfer
- N ... The protocol sends the filename
- - ... Blank, use for no flags, or possibly to show that a
- flag is off, ie. "A-CDE-"
-
- Note that there is presently a limit of 32 protocols. If you need
- more room, say so and I'll modify the program. Later, there won't
- be a limit.
-
-
- msgareas.bbs
- ------------
- Falcon looks for msgareas.bbs in the CONFIGDIR (set up in falcon.cfg).
- This file obviously configures the message areas.
-
- AREA
- Usage: AREA num
- Default: none
-
- This command basically picks the current area. Other subsequent
- commands will act on this area. Range 1-100.
-
- AUTOKEY
- Usage: AUTOKEY
- Default: new users get no keys to this area
-
- This command indicates that new users should be given keys to the
- current area.
-
- See also: LOCKED
-
- AUTOWRITEKEY
- Usage: AUTOWRITEKEY
- Default: new users get no write keys to this area
-
- This command indicates that new users should be given write keys for
- the current area.
-
- See also: WRITELOCKED
-
- ECHO
- Usage: ECHO
- Default: not an echo area
-
- This command makes the current area an ECHO area. Origin lines will
- be added and SEEN-BY: lines will be hidden (if the user has them turned
- off). This is mutually exclusive with MATRIX.
-
- See also: MATRIX
-
- INVISIBLE
- Usage: INVISIBLE
- Default: not invisible
-
- This command makes the current area invisible to all users lower than
- SYSOP level. No barriers to entry are actually put up.
-
- LABEL
- Usage: LABEL str
- Default: ""
-
- This command sets the current area's label, ie. "AMY_POINT". This is
- normally the same as the tag used by Fidonet mail processors. LABEL is
- currently used only for creating a list of areas needing export for mail
- packers like ConfMail (and FastPoint, I think).
-
- See also: falcon.cfg/EXPORTFILE
-
- LEVEL
- Usage: LEVEL level.word
- Default: TWIT
-
- This command sets the current area's minimum-entry level, ie. PRIVIL.
- Users below this level can neither see or enter the area.
-
- LOCKED
- Usage: LOCKED
- Default: not locked
-
- This command locks the current area. Only SYSOP-level users and users
- who have been given "keys" will be able to see and enter the area.
-
- See also: AUTOKEY
-
- LOGOFFMSGAREA
- Usage: LOGOFFMSGAREA
- Default: area 1 flagged
-
- This command flags the current area as the one in which to put logoff
- messages to the sysop.
-
- MATRIX
- Usage: MATRIX
- Default: not a matrix area
-
- This command makes the current area a MATRIX area. Source/destination
- net addresses will be shown, and non-local net messages may be sent.
- This is mutually exclusive with ECHO.
-
- See also: ECHO
-
- NAME
- Usage: NAME str
- Default: ""
-
- This command sets the verbose name of the current area, ie.
- "General msgs".
-
- PASSWORD
- Usage: PASSWORD str
- Default: no password
-
- This command gives the current area a password. Users cannot see this
- area and must know the password to get in.
-
- PATH
- Usage: PATH str
- Default: "" (current dir)
-
- This command sets the path (directory) for the current area. This
- path is where the BBS looks for #?.msg and stat.dat files (and also
- where it writes them, obviously). Normally there is one directory
- per area.
-
- PRIVATEONLY
- Usage: PRIVATEONLY
- Default: writing public messages permitted
-
- This command makes the current area private-only to all users lower than
- SYSOP level. Meaning, they cannot write public messages.
-
- See also: READONLY, PUBLICONLY
-
- PUBLICONLY
- Usage: PUBLICONLY
- Default: writing private messages permitted
-
- This command makes the current area public-only to all users lower than
- SYSOP level. Meaning, they cannot write private messages.
-
- See also: READONLY, PRIVATEONLY
-
- READONLY
- Usage: READONLY
- Default: writing permitted
-
- This command makes the current area read-only to all users lower than
- SYSOP level. Meaning, they cannot write messages
-
- This is useful for an announcements area.
-
- See also: PUBLICONLY, PRIVATEONLY
-
- WRITELOCKED
- Usage: WRITELOCKED
- Default: not write-locked
-
- This command locks the current area's message-writing commands. Only
- SYSOP-level users and users who have been given "write keys" will be
- able to write messages in this area.
-
- See also: AUTOWRITEKEY
-
-
- fileareas.bbs
- -------------
- Falcon looks for fileareas.bbs in the CONFIGDIR (set up in falcon.cfg).
- This file obviously configures the file areas.
-
- AREA
- Usage: AREA num
- Default: none
-
- This command basically picks the current area. Other subsequent
- commands will act on this area. Range 1-100.
-
- AUTOKEY
- Usage: AUTOKEY
- Default: new users get no keys to this area
-
- This command indicates that new users should be given keys to the
- current area.
-
- See also: LOCKED
-
- INVISIBLE
- Usage: INVISIBLE
- Default: not invisible
-
- This command makes the current area invisible to all users lower than
- SYSOP level. No barriers to entry are actually put up.
-
- LABEL
- Usage: LABEL str
- Default: ""
-
- This command sets the current area's label, ie. "GENERAL". This is
- not presently used for anything.
-
- LEVEL
- Usage: LEVEL level.word
- Default: TWIT
-
- This command sets the current area's minimum-entry level, ie. PRIVIL.
- Users below this level can neither see or enter the area.
-
- LOCKED
- Usage: LOCKED
- Default: not locked
-
- This command locks the current area. Only SYSOP-level users and users
- who have been given "keys" will be able to see and enter the area.
-
- See also: AUTOKEY
-
- MATRIX
- Usage: MATRIX
- Default: not a matrix area
-
- This command makes the current area a MATRIX file area. I'm sorry, but
- I cannot for the life of me remember why I included this. There was a
- reason. I'm sure there was...
-
- NAME
- Usage: NAME str
- Default: ""
-
- This command sets the verbose name of the current area, ie.
- "General files".
-
- PASSWORD
- Usage: PASSWORD str
- Default: no password
-
- This command gives the current area a password. Users cannot see this
- area and must know the password to get in.
-
- PATH
- Usage: PATH str
- Default: "" (current dir)
-
- This command sets the path (directory) for the current area. This
- path is where the BBS looks for files and the files.bbs list.
- Normally there is one directory per area.
-
- See also: UPLOADPATH
-
- READONLY
- Usage: READONLY
- Default: writing permitted
-
- This command makes the current area read-only to all users lower than
- SYSOP level. Meaning, they cannot upload files.
-
- UPLOADPATH
- Usage: UPLOADPATH str
- Default: whatever PATH was set to
-
- This command sets the upload path (directory) for the current area.
- This optional path is where the BBS puts uploaded files, possibly for
- verification and/or hurling into the correct area. Also good for
- directing uploads from a dozen specific areas to a general New Uploads
- area.
-
- See also: PATH
-
-
- menus.bbs
- ---------
- Falcon looks for menus.bbs in the CONFIGDIR (set up in falcon.cfg). This
- file sets up menu levels, additional menus, doors, and macros. See the
- section on Configurable Menus for more information.
-
- <command>
- Usage: <command>
- Default: n/a
-
- Where command is one of the following letters:
-
- !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
-
- This sets the command's minimum level to the currently selected command
- level. Users below that level will not be able to use this command.
-
- This also selects the current command letter for certain other
- commands to act on.
-
- Note that commands "," and ";" can't be used because they're whitespace.
-
- See also: <level>
-
- <level>
- Usage: <level>
- Default: TWIT
-
- Where <level> can be NOT, TWIT, DISGRACE, NORMAL, PRIVIL, ASSIST, SYSOP.
-
- This command selects the level that subsequent commands will be given.
- Think of it as "Set the following commands to <level>: ..."
-
- Users below this level will not be able to use whatever commands
- you specify. If the level is NOT, then no users will be able to use it,
- effectively turning it off.
-
- Default command levels (these are NOT menus.bbs commands!):
-
- Main:
- !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
- A-----------------------------T-TTT-TDT-TD--T---D-T-DT--D-----T-
- Message:
- !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
- A---------T-TTDTTTTTTTTTT---T-T-DDT-DNTNDDNDTT-TTDT-N----D----T-
- File:
- !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
- A------------TD---------------T-D-NN-TTAATADTT--TPTDNT--------T-
- Change:
- !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
- ----------D------------------TT-DNDTTTTTTTNTTT-TTTTTSTTT-T---TT-
- UserEdit:
- !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
- ---A--------------------------T-S-SSA--SA-AA-S-ST-AA-A--------T-
- Edit:
- !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
- ------------------------------T-T-TTTT-TTT-T-T--T-TT--T-------T-
- Subop:
- !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
- --T---------------------------T---TT-T--T-TTTT-TTT-T-TT-------T-
- Librarian:
- !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
- ------------------------------T---TT-T--T-TTTT-TTT-TTT--------T-
- Sysop:
- !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
- ------------------------------T-T--TTT----STT---T--T----------T-
-
- NOTE: The '?' and '_' commands always default to TWIT in new user-
- created menus. '?' is always a help key, and '_' always stops and asks
- the user to hit enter.
-
- See also: <command>
-
- BATCH
- Usage: BATCH falcon_batch_file.str
- Default: n/a
-
- The currently selected command will run this Falcon batch file command,
- which is not a DOS batch file (which can be used through something like
- 'CON "execute dos_batch_file"'), but rather a file consisting of NIL,
- CON, and/or RAW lines. Here's a hypothetical registration batch file:
-
- NIL "copy BBS:reg_form.txt T:"
- CON MC "echo \"Please fill out the registration form...\""
- NIL "wait 2"
- RAW - "raw_screen_edit \"T:reg_form.txt\""
- NIL "copy T:reg_form.txt \"FORMS:«FULLNAME».txt\""
-
- The reason for this alternative kind of batch file is so that several
- kinds of commands can be combined in one sequence.
-
- See also: <command>, NIL, RAW, CON
-
- CON
- Usage: CON flags.word dos_cmd.str
- Default: n/a
-
- The currently selected command will run this DOS command, which will
- be treated as if it were running in a CON: window, except that all
- I/O will be through the BBS instead.
-
- Applicable flags:
-
- M Allow "More [Y,n]" prompts
- C Allow the user to break out of the program with ^C
- A Force ANSI through even if user has it turned off
- R Force ANSI color through even if user has it turned off
- I Force IBM characters through even if user has them turned off
- F Fix local screen after execution
- - Nothing (use as filler)
-
- The dos_cmd string may have "«...»"-style arguments, which the BBS will
- fill in. These are described elsewhere.
-
- See also: <command>, NIL, RAW, BATCH
-
- GOODBYE
- Usage: GOODBYE
- Default: n/a
-
- The currently selected command goes to the logoff sequence.
-
- Do not use GOODBYE in conjunction with the Edit, Sysop, UserEdit, Subop,
- or Librarian menus, or any that you may have added to them, because
- these menus have special exit conditions.
-
- See also: MENU, GOTO, <command>
-
- GOTO
- Usage: GOTO menu_name.word
- Default: n/a
-
- The currently selected command goes to the specified menu. For
- instance, the Main Menu "M" command could be specified like this:
-
- MENU Main DISGRACE M GOTO Message
-
- Do not use GOTO in conjunction with the Edit, Sysop, UserEdit, Subop,
- or Librarian menus, because these menus have special entrance and
- exit conditions. You might be okay if you add a menu to them which
- cannot return to the main BBS without going back through the menu
- it left, but I wouldn't do it if I were you.
-
- See also: MENU, GOODBYE, <command>
-
- HELPFILE
- Usage: HELPFILE helpfile.str
- Default: "<menu_name>help.bbs" (except for message -> msghelp.bbs)
-
- This changes the name of the help file for the current menu. This
- file is still looked for in the HELPDIR path set out in falcon.cfg.
-
- See also: MENU, falcon.cfg/HELPDIR
-
- MACRO
- Usage: MACRO commands.str
- Default: n/a
-
- The currently selected command will insert the given commands into
- the BBS command stack so that they are executed next. ie.:
-
- Menu Message TWIT O MACRO "GYN" ; one-character logoff
- Menu Main TWIT * MACRO "FLG* Q" ; all new files (from Main)
-
- Note that doing something like 'X MACRO "X"' is a bad idea. Do not
- include a macro's command inside it, nor any macros that call it.
-
- Make sure your macro can be followed by other commands. If the last
- thing in a macro is a "word", for instance, make sure it is followed
- by a whitespace character to separate it from anything that follows.
- If it is a sentence, append a "|" to end it. Etc. This is because
- MACROs are merely inserted before the rest of the command stack.
-
- See also: <command>
-
- MENU
- Usage: MENU menu_name.word
- Default: Main
-
- Where menu_name can be Main, Message, File, Change, Edit, Sysop,
- UserEdit, Subop, Librarian, or a user-defined menu.
-
- This command selects the menu for other subsequent commands to act on.
- If the menu is built-in or has already been initialized, it will just
- be selected. Otherwise, a new menu of this name will be created and
- initialized.
-
- NIL
- Usage: NIL dos_cmd.str
- Default: n/a
-
- The currently selected command will run this DOS command with no
- input or output.
-
- The dos_cmd string may have "«...»"-style arguments, which the BBS will
- fill in. These are described elsewhere.
-
- See also: <command>, CON, RAW, BATCH
-
- RAW
- Usage: RAW flags.word dos_cmd.str
- Default: n/a
-
- The currently selected command will run this DOS command, which will
- be treated as if it were running in a RAW: window, except that all
- I/O will be through the BBS instead.
-
- Applicable flags:
-
- C Allow the user to break out of the program with ^C
- F Fix local screen after execution
- - Nothing (use as filler)
-
- The dos_cmd string may have "«...»"-style arguments, which the BBS will
- fill in. These are described elsewhere.
-
- See also: <command>, NIL, CON, BATCH
-
-
- sched.bbs
- ---------
- Falcon looks for sched.bbs in the CONFIGDIR (set up in falcon.cfg). This
- file sets up schedules and events.
-
- EVENT
- Usage: EVENT name.str
- Default: no events
-
- This initializes an event, which other subsequent commands will act on.
-
- Most events cause the BBS to exit with the return environment variable
- set to the event name. They also affect user time limits, since the
- BBS must exit no matter what the user wants. Be careful! The BBS will
- NOT exit on an event if it is in the terminal mode.
-
- Some events start special schedules:
-
- yell Y)ell command available
-
- no300connect Callers <= 300 baud can't connect to BBS
- no1200connect Callers <= 1200 baud can't connect to BBS
- no2400connect Callers <= 2400 baud can't connect to BBS
- no9600connect Callers <= 9600 baud can't connect to BBS
-
- no300transfer Callers <= 300 baud can't up/download
- no1200transfer Callers <= 1200 baud can't up/download
- no2400transfer Callers <= 2400 baud can't up/download
- no9600transfer Callers <= 9600 baud can't up/download
-
- Any event name beginning with one of the above strings (ie. "yell",
- "yell2", "no300connect_A", "no300connect_B") causes the thing the name
- implies to be true for the duration of that event.
-
- See also: falcon.cfg/ENV_VAR_NAME
-
- <day>
- Usage: <day>
- Default: no days selected
-
- Where <day> can be Sun, Mon, Tue, Wed, Thu, Fri, Sat, Everyday.
-
- The currently selected event occurs on this (these) day(s) of the week.
-
- START
- Usage: START military_time.num
- Default: I'm not sure. Don't try.
-
- Set the currently selected event to start at this time of the day on a
- 24 hour military clock, which is in the format HHMM, with HH=0..23 and
- MM=0..59. ie. 10:30pm = 2230.
-
- See also: DURATION
-
- DURATION
- Usage: DURATION minutes.num
- Default: I'm not sure. Don't try.
-
- Set the currently selected event to last this many minutes. It should
- be at least 1. The method I'm currently using to do events is not very
- good. If an event is in progress, the BBS will exit, even if it has done
- so once already for the current event. You must make sure that whatever
- the event causes will last at least as long as this DURATION, or it
- could occur twice.
-
- See also: START
-
-
- term.bbs
- --------
- FTerm looks for sched.bbs in the CONFIGDIR (set up in falcon.cfg). This
- file is used to set up the modem strings, dial directory, and miscellaneous
- other stuff for FTerm.
-
- <cursor key>
- Usage: <cursor key> macro.str
- Default: ""
-
- Where <cursor key> is CURUP, CURDOWN, CURLEFT, CURRIGHT, SHCURUP,
- SHCURDOWN, SHCURLEFT, SHCURRIGHT.
-
- These define the cursor key macros. Typing the specified key in the
- terminal sends out macro.str. Simple.
-
- See also: <function key>, <number pad key>
-
- DIAL
- Usage: DIAL str
- Default: whatever falcon.cfg/DIAL was set to
-
- This string is the modem dialing command prefix. It should not have an
- ENDOFLINE string in it, since that string is automatically appended.
-
- There is presently no real reason to have this, as the BBS never does
- any dialing and you can just set that string to what you want. However,
- it may do so in the future (for, say, callback validation or some such)
- and therefore I provide two versions.
-
- See also: ENDOFLINE, falcon.cfg/DIAL
-
- DIRECTORY
- Usage: DIRECTORY
- Default: normal command mode
-
- After this command, term.bbs turns into a phone directory, all the
- way to the end of the file. The format of each directory entry is
- as follows:
-
- name.str phone_number.str baud.num comment.str
-
- ie. "Dis BBS" "123-456-7890" 2400 "24 hours, Joe Sysop"
-
- This command must come after all other commands.
-
- DLDIR
- Usage: DLDIR path.str
- Default: "RAM:"
-
- This is the default download path. It is put into the file requestor
- to begin with (which, at this time, is either one or two prompts,
- since I don't want to use ARP and CBM hasn't released 2.0 just yet),
- where it can be changed.
-
- See also: ULDIR
-
- EOLPAUSE
- Usage: EOLPAUSE pause.num
- Default: 0
-
- Wait this many 50ths (or maybe it's 60ths?) of a second after each
- end-of-line in an ASCII send.
-
- This is useful for uploading text to, say, a BBS that has unusually
- long pauses when you hit carriage return, or simply does not have a
- buffer
-
- See also: SENDPAUSE
-
- <function key>
- Usage: <function key> macro.str
- Default: ""
-
- Where <function key> is F1, F2 ..., F10 or S1, S2, ..., S10.
-
- These define the function key macros. Typing the specified key
- in the terminal sends out macro.str. Simple.
-
- See also: <number pad key>, <cursor key>
-
- HANGUP
- Usage: HANGUP str
- Default: whatever falcon.cfg/HANGUP was set to
-
- This modem command should hang up the modem from any mode. If your
- modem will hang up on DTR being dropped, and you are not forcing DTR
- to stay on, and there is no other program using your unit of the serial
- device (because the only way to drop DTR is to completely close out the
- device), you can substitute "\d" here to drop DTR. It is a much cleaner
- disconnect that way.
-
- This is given in case you do like I do and force DTR in the term, so
- that if I crash the system while online, I won't get disconnected and
- can reload the term. I don't force it in the BBS, though (my modem
- can toggle forcing DTR with an AT command instead of a dip switch).
- So my falcon.cfg HANGUP is "\d", and my term.bbs hangup is "\w\w\w
- +++\w\w\wATH0\r". See?
-
- See also: falcon.cfg/HANGUP
-
- INIT
- Usage: INIT str
- Default: "ATZ\r"
-
- This string initializes the modem for the terminal.
-
- LOCAL_ECHO
- Usage: LOCAL_ECHO
- Default: no local echo
-
- This command tells the term to echo outgoing text to the local screen
- as well. This is mostly used in straight term-to-term chats.
-
- See also: TRANSLATE_EOL_IN, TRANSLATE_EOL_OUT
-
- <number pad key>
- Usage: <number pad key> macro.str
- Default: ""
-
- Where <number pad key> is K. (kay-period) or K0, K1, ..., K9.
-
- These define the number pad key macros. Typing the specified key
- in the terminal sends out macro.str. Simple.
-
- See also: <function key>, <cursor key>
-
- SENDPAUSE
- Usage: SENDPAUSE pause.num
- Default: 0
-
- Wait this many 50ths (or maybe it's 60ths?) of a second after each
- character in an ASCII send. Note that using a nonzero number adds
- a certain amount of overhead, so that 1 is a bit slower than you
- might expect, compared to 0.
-
- This is useful for uploading text to, say, a BBS that doesn't read
- text very fast and might lose some input to a buffer overrun.
-
- See also: EOLPAUSE
-
- STOPDIAL
- Usage: STOPDIAL str
- Default: whatever HANGUP was set to
-
- This is sent to the modem when aborting a dial that has taken too long.
- It defaults to the full HANGUP string, but if you can just hit space or
- return to abort when your modem is calling out, then use that. I do.
-
- There is presently no real reason to have this, as the BBS never does
- any dialing and you can just set that string to what you want. However,
- it may do so in the future (for, say, callback validation or some such)
- and therefore I provide two versions.
-
- See also: HANGUP
-
- TIMEOUT
- Usage: TIMEOUT seconds.num
- Default: 0 (no timeout)
-
- If this number is nonzero, and there are so many seconds of dead
- time (no input, no output, no carrier), the terminal will time out
- and return to the BBS to wait for a call.
-
- TRANSLATE_EOL_IN
- Usage: TRANSLATE_EOL_IN
- Default: leave incoming CR's alone
-
- This command tells the term to translate incoming carriage returns to
- carriage return/linefeed sequences. This is mostly used in straight
- term-to-term chats.
-
- See also: TRANSLATE_EOL_OUT, LOCAL_ECHO
-
- TRANSLATE_EOL_OUT
- Usage: TRANSLATE_EOL_OUT
- Default: leave outgoing CR's alone
-
- This command tells the term to translate outgoing carriage returns to
- carriage return/linefeed sequences. This is mostly used in straight
- term-to-term chats.
-
- See also: TRANSLATE_EOL_IN, LOCAL_ECHO
-
- ULDIR
- Usage: ULDIR path.str
- Default: "RAM:"
-
- This is the default upload path. It is put into the file requestor
- to begin with (which, at this time, is either one or two prompts,
- since I don't want to use ARP and CBM refuses to release 2.0), where
- it can be changed.
-
- See also: DLDIR
-
-
-
- 12. Configurable Menus
- =======================
-
- Note: directories like CONFIG/ and HELP/ are actually references to the
- directories you set up in your falcon.cfg file.
-
- How to Make a New Menu
- ----------------------
- Edit your CONFIG/menus.bbs file. Use the MENU keyword to select a menu
- which does not exist. A new menu of that name will be created. Example:
-
- MENU External
-
- A new menu is created only on the first instance of an unfamiliar name.
- If you should happen to reference it again with another "MENU External"
- line, that will only select it again. The name here is the name which
- will be displayed in the menu, as...
-
- <label> MENU ie. EXTERNAL MENU
- Select: Select:
-
- Note that the version you see in the menu will be in allcaps, no matter
- what you entered, just to match up with the word "MENU". The string
- will, however, appear as entered in the "Where:" field of the status
- window.
-
- Anyway, you've created a new menu. Now you need to customize it...
-
-
- Customizing Menus
- -----------------
- You can customize any menu, built-in or new. Built-in commands will,
- however, take precedence. To do so, first select it:
-
- MENU Utilities
-
- Now select the level of the command(s) you wish to add:
-
- SYSOP
-
- Now the command letter, just as if you were only setting it's level, which
- you are in fact doing, but you will follow it by command information.
-
- B NIL "copy LOG:log.bbs LOGBACK:log.bak"
-
- Now the Utilities menu has a new SYSOP-level 'B' command, which in this
- case runs a program, quietly, to back up the log file. Refer to
- the section on Help Files for information on adding an entry to the help
- file.
-
- The currently-available set of customizations for a command are:
-
- GOTO <label>
- NIL <dos command and arguments>
- RAW <switches> <dos command and arguments>
- CON <switches> <dos command and arguments>
- BATCH <falcon batch file>
- GOODBYE
- MACRO
-
- GOTO
- ~~~~
- GOTO is simple. All it does it link the current menu to another through
- the specified command letter. To link a Games menu to the main menu,
- both ways, do this:
-
- MENU Games
- TWIT M GOTO Mmain
-
- MENU Main
- TWIT G GOTO Games
-
- Note that Games must be declared before Main's GOTO points to it, or else
- Falcon will cry foul because it has not yet heard of any Games menu. If
- you have several custom menus which all reference each other, you must
- declare them before linking them, like so:
-
- MENU One
- MENU Two
- MENU Three
-
- MENU One
- TWIT 2 GOTO Two
- 3 GOTO Three
- MENU Two
- TWIT 1 GOTO One
- 3 GOTO Three
- MENU Three
- TWIT 1 GOTO One
- 2 GOTO Two
-
- It is perfectly acceptable to reference a menu more than once, since it is
- only created once. Technically, I did not need the first "MENU One" line,
- because it would have been created before it was pointed to by the "GOTO
- One" lines in MENUs Two and Three.
-
- NIL, CON, and RAW
- ~~~~~~~~~~~~~~~~~
- All three of these require the AmigaDOS "Run" command to be in your command
- path. CON and RAW both require the "NewShell" command as well.
-
- These three execute the given command with the given arguments. NIL
- executes the command without any input or visible output. NIL is usually
- used to perform a task that the user need not see or participate in. CON
- and RAW execute the command, through the BBS, like a command executed in
- a CON: or RAW: window. The user sees the output, and may type input.
- In CON, the input is line-based, like in a CLI or Shell. In RAW, it is
- character-based, where every character gets sent to the program with no
- built-in editing, although the program may provide some if needed. Good
- programs for CON and RAW would be a polling booth and a text editor,
- respectively. Another difference is that CON programs are subject to
- "More? [Y,n]" prompts.
-
- Note that, for a CON or a RAW command, using "" means to open a full Amiga-
- DOS shell. This is cute, but really quite dangerous for a BBS to have
- because, except for the level required to start the shell, there is no
- security. Now, if you're the only one with SYSOP, you can set the shell
- to SYSOP level only and be safe, but many sysops have other users set to
- SYSOP. It's also a problem if you run a program while in the shell that
- opens its own window or screen, because of course you can't access that
- from the BBS program.
-
- Examples:
-
- DISGRACE S CON MC "status full"
- I CON MC "info"
- A CON MC "avail"
- NORMAL C RAW - "rawedit some text file"
- SYSOP K NIL "delete LOG:log.bbs"
- N CON MC "" ; "" means newshell
-
- The switches are as follows (note that they are not used with NIL commands):
-
- M Allow "More? [y,n]" prompts in CON commands. RAW commands do not
- get these prompts.
- C Allow user to type ^C to break out of the program.
- A Force ANSI to be permitted in CON commands. RAW commands do not
- have ANSI filtered out for them if the user has ANSI turned off.
- R Force ANSI color not to be removed in CON commands. RAW commands
- do not ANSI color filtered out for them if the user has ANSI
- color turned off.
- I Force IBM chars to be permitted. RAW commands do not have IBM
- chars filtered out for them if the user has IBM chars turned off.
- F Fix local screen after program is run. Some programs, Contris
- for example, may send ANSI codes which change the settings in the
- console.device, and this will reset them after the program is
- done. Note that this involves clearing the screen.
- - Nothing. Use this if you don't have any flags on. You could also
- use it to make your flags look like the flags in the AmigaDOS
- command "list", ie. "------" or "MC-R---" or "MCARIF".
-
- Final note: It is permissible to run a batch file (ie. 'CON CM "execute
- zeebie.bat"'), and it is also permissible for a program to run another
- program (usually through the dos.library function Execute("command",NULL,
- NULL), if there are any programmers wondering). All I/O will be properly
- redirected.
-
- BATCH
- ~~~~~
- BATCH will read in and interpret the batch file you specify, when the
- user types the command letter. Note that this is not a DOS batch file
- but rather a custom file made up of NIL, CON, and RAW lines, like this:
-
- RAW - "rawedit T:temp_file"
- NIL "cuss_filter T:temp_file"
- CON CM "echo \"*n*nThis is the file you entered, filtered:*n\""
- CON CM "type T:temp_file"
- NIL "delete "T:temp_file"
- CON CM "echo \"*nDone.\""
-
- If that file was called "cuss.bat", you'd use this to add it:
-
- NORMAL N BATCH "cuss.bat"
-
- The reason this is not a regular batch file is so that you can have both
- RAW and CON commands in one sequence. If you just want a regular AmigaDOS
- batch file, use something like 'CON CM "execute zeebie.bat"'.
-
- The only drawback to BATCH files is that there is overhead for every
- command to set up the door, usually amounting to a second or two pause
- before each command. Naturally this would drop on a faster computer like
- a 3000.
-
- Most of the time you will not need BATCH files.
-
- GOODBYE
- ~~~~~~~
- Obvious. The user can log off with this. Example:
-
- TWIT G GOODBYE
-
- Ta da.
-
- MACRO
- ~~~~~
- Use this to execute a few BBS commands through one. For instance, to
- create a one-character logoff sequence from the Message Menu:
-
- TWIT O MACRO "GYN"
-
- Do not call the macro you are in. It will be a bad thing. Don't call
- a different macro that calls the macro you are in. It will be a bad thing.
-
- Make sure your macro can stand having other commands stacked after it.
- For instance a macro which did a global search for new files would work
- as "LG*", but not if there were other commands following it. The "*", or
- any other description, is read in as a "word" and therefore needs a white-
- space character to separate it from anything that follows. It should
- instead be "LG* ".
-
-
- Arguments
- ---------
- Arguments may have BBS information dynamically inserted into them. If,
- for example, you wanted to pass the user's name to a game, you could say:
-
- RAW - "playgame \"«FULLNAME»\""
-
- That would be an example of a straight copy. There are also conditionals,
- which insert the first following «»-type string if the flag is on, and the
- second if the flag is off, ie:
-
- RAW - "playgame \"«FULLNAME»\" «ANSI»«»«NOANSI»"
-
- ...which would give something like 'playgame "Brian Fehdrau"' for my
- configuration, and 'playgame "Joe No-Ansi" NOANSI' for someone who doesn't
- want ANSI graphics. As you can obviously see, it's permissible to put
- nothing between the "«»"'s in a conditional argument. It's easiest to
- think of conditionals like this: "«if this flag is on»«then insert this»
- «else insert this»".
-
- There are also prompt arguments, which ask the user for a certain kind
- of command with a given prompt. The «» string following the argument
- contains the prompt. ie.:
-
- V CON CM "ppdecrunch \"«FILEPATH»«AGETWORD»«View which file? »\""
-
- (That would be used to V)iew a PowerPacked text file in the current file
- area.)
-
- All dynamic arguments come between a '«' and a '»'. On my usa1 keymap,
- these are typed with alt-'9' and alt-'0'. I picked these because they
- weren't too likely to be needed on the command line. If, however, you do
- need them, you can enter "««" for a single '«', and '»' is fine by itself.
-
- Note that these arguments may also be used in MACROs.
-
- Here is a list of dynamic arguments, without "«»"'s (Note that these ARE
- case-sensitive, and therefore MUST be entered in uppercase):
-
- Argument types:
- ---------------
- s = string
- d = 16 bit signed integer
- ld = 32 bit signed integer
- u = 16 bit unsigned integer
- lu = 32 bit unsigned integer)
-
- Straight copy arguments
- -----------------------
- FIRSTNAME s The user's first name, ie. "Brian"
- LASTNAME s The user's last name, ie. "Fehdrau"
- FULLNAME s The user's full name, ie. "Brian Fehdrau"
- CITY s User's city/area, ie. "Saskatoon, SK"
- PASSWORD s The user's password (be careful!) ie. "(yeah, right!)"
-
- TOTALTIME d User's total time on to date, in minutes
- TODAYTIME d Time of previous calls today, in minutes
- CALLTIME d Unmodified time allowed per call, -1 if unlimited
- DAYTIME d Time allowed per day, -1 if unlimited
-
- TOTALDOWN ld User's total downloads to date, in kilobytes
- TODAYDOWN ld Total downloads today, in kilobytes
- CALLDOWN ld Unmodified download allowed per call, -1 if unlimited
- DAYDOWN ld Download allowed per day, -1 if unlimited
-
- TOTALUP ld User's uploads on to date, in kilobytes
-
- CALLS u Number of times user has called to date
- MSGS u Number of messages user has entered to date
-
- FILEAREA u The user's current file area
- FILEPATH s The path to user's current message area
- Note that this path is available from any menu.
- MSGAREA u The user's current message area
- MSGPATH s The path to user's current message area
- Note that this path is available from any menu.
-
- LASTCALL lu The user's last call, in seconds since 00:00 1 ??? ????
- CREDIT lu Mail credit, presently in cents
- WIDTH u Width of screen, in columns
- HEIGHT u Length of screen, in rows
-
- LEVEL u Userlevel, 0-5 (TWIT,DISGRACE,NORMAL,PRIVIL,ASSIST,SYSOP)
- HELP u User help level, 0-2 (NOVICE,REGULAR,EXPERT)
-
- USERNUM d User's number in user.bbs file, starting with 1, not 0
- USERDIR s Path to directory containing user.bbs file
-
- Conditional arguments
- ---------------------
- IBMCHARS Does the user support the upper (128-255) IBM chars?
- LINEEDIT Line editor vs. screen editor
- DESTR_BS Are the user's backspaces destructive?
- NOCOLOR Does the user want ANSI color filtered out?
- CLEAR Does the user want screen clearing?
- FEEDS Does the user need linefeeds?
- ANSI Does the user want ANSI?
- MORE Does the user want more prompts?
-
- Prompt arguments
- ----------------
- GETLETTER s Get a letter/command, same stacking as in BBS
- GETNUMBER s Get a number, same stacking as in BBS
- GETWORD s Get a word, same stacking as in BBS, ie. a filename
- GETSENTENCE s Get a number, same stacking as in BBS
- GETSTACK s Get entire stack or command line with no parsing
-
- These prompts will not accept a blank answer. They will insert a blank
- string if the user hits return. If you prepend an "A" to the string,
- ie. "AGETWORD", it will take a blank string from the user as a signal
- to abort the command. Remember that any error- or range-checking is up
- to you (ie. look out for "#?"s or "*"s in filenames).
-
- An unrecognized argument is just printed out verbatim, ie. "«ZOT»" would
- come out as "ZOT".
-
-
- Note on help files
- ------------------
- By default, a menu's helpfile will be looked for as HELP/<label>help.bbs,
- which in this case of a Utilities Menu would be HELP/utilitieshelp.bbs.
- However, you can set it up to look for a different name like this:
-
- HELPFILE <filename>
-
- Which would then be looked for as HELP/<filename>.
-
-
- What Kinds of Programs to Use and What Kinds Not to Use
- -------------------------------------------------------
- When Falcon detects that a user is too inactive or has run out of time
- altogether, it sends what is called a C break signal to the program,
- which is exactly the same as if you had typed control-C when the program
- was running in a normal CLI or shell. This is how Falcon regains control.
- If a program will not exit cleanly and reasonably promptly (no more than
- 10-30 seconds at the outside) on a control-C signal, you should avoid
- using it. Note that this break signal is only sent to the program which
- most recently had some I/O.
-
-
- Warnings
- --------
- Do not use ARun to run Falcon under 2.0. ARun disagrees with the system
- call Execute(), which is used to run external programs. You'll probably
- get an odd-address exception guru if you do.
-
- Be careful when linking (with GOTO) into and out of built-in menus. You
- should not, for instance, link out of the Sysop, UserEdit, Subop, or
- Librarian menus, since they have special exits that can save changed
- config files.
-
-
- Suggestion
- ----------
- I suggest making your Run and NewShell commands resident (automatic under
- 2.0). Run is used once for every NIL program, and twice in a RAW or CON
- program along with NewShell: Run is used once by the system call
- Execute(), and both are used in the command that is Execute()d. Actually,
- come to think of it, Execute() may not know about resident commands under
- 1.2/1.3. I'm not sure. Maybe put it in RAM: if your drive (whatever
- sort) is slow. This is to reduce overhead.
-
-
- Notes About DLG Doors
- ---------------------
- DLG Pro, another Amiga BBS, uses similar doors. If they do not access the
- DLG userlog or data structures directly, you can use them with Falcon.
- You will need to figure out the conversion from their arguments to mine,
- since I don't currently know anything more than their %1 corresponds to
- my «FULLNAME». Shouldn't be too hard, though. You may need to set up a
- directory or two, but nothing painstaking.
-
- Apparently, DLG has a DF command that other programs can Execute() to type
- a file. I understand that the DF command interprets their %x codes.
- Just replace their DF program with Type. And, no, I do not interpret their
- %x codes. You see, they don't seem to want to tell me what they are so
- that we could, say, form a standard interface. Tom Conroy said something
- to the effect of "We don't want to give away trade secrets." Unimpressed,
- I replied with a comment about his evidently expanding hat size.
-
-
- Sample External Menu
- --------------------
- MENU External
- TWIT M GOTO MAIN
- G GOODBYE
- DISGRACE S CON CM "status full"
- I CON CM "info"
- A CON CM "avail"
- NORMAL E RAW - "rawedit \"some text file\""
- C BATCH "cuss.fbat"
- P RAW - "execute SomeRawGame_Setup_Then_Run «FULLNAME»"
- SYSOP B NIL "copy LOG:log.bbs LOGBACK:log.bak"
- N CON C "" ; newshell
- MENU Main
- TWIT X GOTO EXTERNAL
-
- Editing the HELPDIR's externalhelp.bbs file would be up to you.
-
-
-
- 13. Batch File
- ===============
-
- You'll probably find a file called "fbatch" in your distribution archive.
- Fbatch is the batch file I've used so far. However, fbatch is going to be a
- problem. It really only works in the ARP Shell, and the Arp Shell doesn't
- work under 2.0. I'm going to have to dump it. I think I'm just going to
- distribute Falcon without an example batch file and let the user work it
- out, since it's bound to end up very personalized when they're through
- anyway. As I've suggested elsewhere, you should take a look at Robert
- Williamson's Roof shell, which is meant for BBSs (FidoNet BBSs, to be
- exact). However, I'm still going to include the documentation I wrote for
- fbatch as long as I'm including it. Really, though, you'd be much better
- off writing you own.
-
- Falcon's Batch File
- -------------------
- "FBATCH" is the file that runs my point (if you don't interface with
- FidoNet and you don't run any other schedules, you don't need fbatch or any
- other batch file). It is written for the ARP shell. I'm not sure if it
- could be made to work under the regular CBM shell (which the ARP shell is a
- superset of).
-
- The batch file and several of the example packer/mailer config files require
- BBS: to be assigned to the directory Falcon is run from, LOG: where you want
- the BBS's, the mailer's, and the batch file's log, MAIL: to the directory
- which holds the message area directories, LOGBACK: to where ever you want to
- keep backups of the log.bbs file, MAILIN: to the place where the mailer will
- put incoming mail packets and archives, and MAILOUT: to your MATRIX
- directory. So put something like the following in your startup-sequence,
- (it's basically what I use with my 590HD):
-
- assign BBS: DH0:bbs
- assign LOG: BBS:
- assign LOGBACK: BBS:logs
- assign MAIL: BBS:msgs
- assign MAILOUT: MAIL:matrix
- makedir RAM:inbound ; you may want to use a MAIL:inbound
- assign MAILIN: RAM:inbound ; dir instead, esp. with big echoes
-
- Note that the environment variable "fret" is set by Falcon on exit, usually
- based on schedules from sched.bbs. It may be set to "quit" on a manual
- exit, or "exit" if it has been spawned from a front door (though in that
- case it hardly matters). The type of environment variable is determined by
- the presence (or absence) of the CBMENV keyword.
-
- Note that at least one event (newlog) has an alternative (commented out)
- that would make use of the ARP Shell's pipes. It is in the form of a
- $(date) command in this case, which inserts the result of the 'date' command
- into a filename. In order to use this, one must have not only the ARP
- Shell, but must have PIP: mounted as well. PIP: is a pipe that comes with
- ConMan that ARP also uses. Instructions on its installation should be found
- in both the ARP and ConMan documentation. It is not required, but it is
- useful.
-
- The file can be run with an event name (ie. "run fbatch mail") and it should
- act as if Falcon had signalled for that event to happen. Afterwards, it
- will return to Falcon or exit if called with the THENQUIT switch (ie. "run
- fbatch import thenquit"). Remember to set the S (script) protection bit.
- If not, you'll have to change the command to "run execute fbatch ...".
-
-
-
- 14. Suggestions and Hints
- ==========================
-
- o Run in "tiny" (WorkBench idiot bar) mode whenever you are not actively
- watching or using the program. Scrolling a three bitplane hires screen,
- especially if it is visible, is very slow, not only because of the
- actual data-movement, but also because displaying a three+ bitplane
- hires screen steals CPU time and bogs down the system. If you leave the
- display open, the serial output will be slowed down visibly. I can't
- help this. (For the same reason, you should always leave the
- TRANSFER_TWOPLANES flag in your falcon.cfg file.)
-
- o If you do have the full display going, do not keep the status window on.
- It partitions the scrolling, which also slows things down horribly. Try
- it: you'll see what I mean. I can't help this either.
-
- o If you want to remove the file areas altogether or restrict them to
- registered users, you must remove all links to the File Menu or set them
- to the appropriate level. These links include, at present, the F and J
- commands from the Main Menu, and the J command from the Message Menu.
- You can do this like so in the menus.bbs configuration file:
-
- ; to remove
- MENU Main NOT F J
- MENU Message NOT J
-
- ; to restrict
- MENU Main PRIVIL F J
- MENU Message PRIVIL J
-
- See the documentation on menus.bbs for more information.
-
- Note that yanking up area 1's level is not sufficient to restrict access
- to the file menu, because the user can always get into area 1. Even if
- they try to change areas, they can still hit return to drop back into
- their current area (usually 1) when they see that no areas are
- available.
-
- o Do not use external message renumbering programs. Unless they say they
- will update Falcon's user pointers, chances are that they won't, and
- your users will be left with inaccurate last-read pointers.
-
- o Try using Robert Williamson's ROOF shell if you need scripts to do
- something more complex than automatically running the BBS at startup.
- My ARP-Shell-based scripts will be useless under 2.0, because the ARP
- Shell does not work under 2.0, and 2.0 is due out in a few weeks at the
- time I'm writing this. As Robert uses Falcon, among other things, you
- should be able to work from his example scripts. (NOTE: At this time,
- I don't think he's released a version (with samples) since receiving
- Falcon. Ask him...?)
-
- o If you're running on floppies, use a reasonable number of disk buffers.
- This will help with loading commonly-used overlays and with reading the
- brief-help portion of the prompt for users with a help level of NOVICE.
- Getting FaccII would be a good idea. Another thing you should remember
- when you're running on floppies is that LIBS: must be assigned to a disk
- in a drive, or else the program will not be able to load the XPR
- libraries.
-
- o If you're running on any slow drive, most notably floppies (but some
- hard drives too), you should increase your serial read buffer's size
- (from Preferences). Ideally, it should be big enough so that it won't
- overflow while the protocol stops to dump some data to disk. This
- should also reduce or even prevent RTS/CTS pausing on high-speed modems,
- which pause instead of letting the buffer overflow. How big the buffer
- should be depends on how fast the transfer is and how slow the drive is.
- Experiment.
-
- o Try to avoid modifying files and/or paths in file areas more often than
- you need to. Scanning areas for new files is done by looking at the
- directory, and if it has been modified since the last call, then the
- entire directory is scanned to see if there are any non-"files.bbs"
- files that have been modified since the last call (it's weird, but it
- works well enough and works within the files.bbs concept). Therefore,
- if you modify the directory, the entire thing has to be scanned (like
- the AmigaDOS List command would do) and that slows things down a bit.
- Modifying a file will, obviously, make it "new" even though it
- probably isn't.
-
-
-
- 15. Miscellaneous/Technical Information
- ========================================
-
- Workbench/Kickstart 2.0
- -----------------------
- Falcon works under 2.0. It even works with wacky system fonts. The last
- time I had someone run it under Enforcer in front of me, we could only find
- one hit, and it was a safe and easily-fixed bug (basically a strcpy(NULL,
- NULL), in case you're wondering). He's never reported any hits since then,
- but I don't know how often he runs Enforcer.
-
-
- Overlaid vs. Pure Executables
- -----------------------------
- The executable file is actually about 30% larger than the entire memory
- required (data space included) during a waiting-for-call, tiny-WorkBench-
- window situation because Falcon uses overlays for most sections (config file
- reader, each menu, the editors, etc). They are loaded at need and unloaded
- when not in use, which is sensible because most are mutually exclusive. On
- a hard drive, the load time for each section should be practically nil.
- Someone using a floppy shouldn't notice too much, especially if they usually
- have a reasonable number of buffers. Most sections, if not all, are less
- than 20K or even 10K.
-
- However, if you are going to run Falcon several times at once, you will
- probably want the re-entrant/pure/resident-able version. It takes up more
- memory if you're only running it once, but on subsequent invocations it only
- needs enough memory for the stack and variables/data. If you need this
- version, please contact me and we'll see if we can get it to you. I did not
- want to include it in the general distribution archive because it's a fairly
- sizable file and most people will not want it.
-
-
- bf.library
- ----------
- "Why do we have to have another library?" you ask. Well, at the moment
- Falcon is only really meant for a single-line system (although it can be
- used for multi-line, albeit somewhat shakily). However, it is being adapted
- for a secure multi-line environment, which will require the program to be
- broken in two: first, a server program, which will read the configuration
- files and control access to message areas and such, and a client program,
- which will sign on with the server and actually run the system. In order to
- avoid duplication of code between the two programs, a library with a single,
- re-entrant copy of the code was created. Some of the functions are generic
- enough (ie. a fully-featured, re-entrant printf()) that I may make the
- library format public for doors to use.
-
-
- Using a Nodelist
- ----------------
- In order to access a nodelist from the BBS, you must have traplist.library,
- version 4+, and the TrapList program that comes with it. Unfortunately,
- neither has been released to the general public. *** Max has just announced
- that TrapDoor 1.80 will be released on October 1st, which, coincidentally
- enough, is the day I'm releaseing Falcon 1.00. That's a convenient
- coincidence. At any rate, if you've got the necessary stuff, and you set up
- the nodelist directory properly in Falcon.cfg, Falcon will start using the
- nodelist.
-
-
- Refreshing the Display
- ----------------------
- When Falcon refreshes the display when returning to full-screen mode from
- tiny mode, what it does is print the last (1.25*lines_in_screen) lines that
- were displayed, or however many came after the last screen clear if that was
- more recent. This can be problematical during a full-screen edit, since
- there aren't many "lines". A "line" in this case is a string which ends
- with an end-of-line character, and there just aren't many output in most
- full-screen editors (including mine). It may take a bit of time to print
- out what the BBS sees as a rather longish line which, will probably include
- much of your editing, depending on how large the review buffer is.
- Confused? Oh well.
-
-
- Editing File Lists
- ------------------
- In case you want to edit the files.bbs file lists in your file areas, this
- is how they are interpreted:
-
- - If line starts with illegal file start, or <space>, '=', or '-', it is
- considered a comment. Note that if you want to use ANSI color in the
- comment, you may need to reset it at the start of every line because all
- comments are initially set to cyan.
- - Otherwise, Falcon gets all characters up to the first whitespace and
- uses them as the filename, then gets the file size and date from disk
- and displays them (or "MISSING ??-???-??" if it could not find the
- file), then a '*' if file is new since last time file area was listed,
- then displays the rest of the line as comment. Note that the file
- comment will be wrapped to fit a column underneath its normal position
- if it is too long and the caller's screen is wide enough to accommodate
- a decently-sized column (otherwise it'll just print the entire line all
- at once).
-
- Falcon considers the following to be illegal file starts: "\:/#*?[]()><|".
- Naturally, there are others, like carriage returns or escapes, but those are
- the ones that may not have been obvious. This is useful to know, since
- the files.bbs listing decides whether or not a line is a comment or a file
- based on whether or not the first character of that line is an illegal file
- start (as well as space, '-', or '='). Therefore you can use those
- characters in a comment without having to put a space at the start.
-
-
- The Quote File
- --------------
- The quotes.bbs file is made up of a number of quotes, separated by lines
- with nothing but "---" on them. It is found in the TEXTDIR.
-
- If the quotes.bbs file can't be found, it says:
-
- "A wise man knows when there is something wrong with his
- quoting facility."
-
- The quote is selected by dropping in at a random position and finding the
- start of the quote it drops into. This results in larger quotes being
- picked more often, but it's the simplest way to do it.
-
-
- The Log File
- ------------
- This file will not show up unless specified in Falcon.cfg.
-
- It comes out in this format:
-
- <char> <datestamp> <comment>
-
- Where <char> describes the comment type:
-
- "?" = Program error
- "!" = User did something naughty
- "*" = Noteworthy user action
- " " = Nothing special
-
- The datestamp is a message-style datestamp, with the date and time.
-
- The comment is the actual reason the entry has been made. It may be
- indented somewhat: 2 spaces for things that occur while Falcon is
- running, 2 more for things that happen during a call, and a little
- more yet for transfer file lists.
-
-
- Text Files
- ----------
- When transmitting a text file, if Falcon encounters a ^B (ASCII 2) character,
- it will toggle ^C breaking on or off, depending on what it is at that time.
- The default at the start of the file is to permit breaking. This is useful
- if you want new users to sit through your entire warning/whatever to them,
- but don't be a jerk and put one into the start of your 23K animated ANSI
- sequence. If I get complaints about this sort of thing from users, I'll just
- take it out, since I'm more a user than a sysop and will side with them.
-
- It should also be pointed out that some .bbs text files have .gbs
- counterparts. These are displayed, if available, to users with ANSI. If
- they aren't available, the usual .bbs file is sent, as it would be to a non-
- ANSI user.
-
-
- Help Files
- ----------
- Menu help files have a special format. Note that this only applies to help
- files specifically for menus, and not to text files used for, say, the long
- help in FRED. These help files are arranged in lines, as follow:
-
- line 1: Regular level help. Each letter is checked to see if the
- is available to the user. This text is read at program
- startup and cached, to avoid pauses. For NOVICE level help
- a pause seems negligible, but for one line, it's annoying.
- line 2: Column width (note that this is only used for calculation
- of current line width and that each command must have
- spaces to pad to the column width). This is needed because
- ANSI can make strings look longer to the computer than they
- are when displayed.
- line 3+: Groups of three, like so:
- line A: First letter of command, used to figure availability
- line B: Brief help, out put in columns of width from line 2
- line C: Line-long help. Not used yet as of 0.27. Should be
- less than about 70 characters
-
- For example, to make a menu which would look like this in REGULAR level
- help...
-
- THE MENU: A B C D ?
- Select:
-
- ...and like this is NOVICE level help...
-
- THE MENU:
- A)Go Here B)Go There C)Go Home D)Go Away
- ?)This Help
-
- ...you would have a help file (thehelp.bbs) that looked like this in the
- HELPDIR specified in falcon.cfg:
-
- A B C D ?
- 12
- A
- A)Go Here
- Go to this place
- B
- B)Go There
- Go to that place
- C
- C)Go Home
- Go to your residence
- D
- D)Go Away
- Go to hell
-
- As you may have noticed, the name of the menu determines the name of its
- help file. It's always HELPDIR/<menu_name>help.bbs, with the one exception
- of the Message Menu's msghelp.bbs file.
-
-
- The Numeric Keypad
- ------------------
- In some parts of the program, the numeric keypad has special functions for
- the following keys: '0..9', '.', '-', and their shifted versions. You
- can use the number pad in the normal manner by typing control-NumL (the
- left parenthesis on a 500/2000/3000 keypad, use control-'-' on a 1000) to
- toggle modes. You can also toggle modes on the fly by using the control key
- with one of the keys above, to get what the key would be if the current mode
- was reversed. The pad defaults to "special" mode.
-
-
- Remote VT100 Keys
- -----------------
- The following VT100 key strings are accepted by the BBS and used where
- applicable:
-
- Cursor-Up "<CSI>A"
- Cursor-Down "<CSI>B"
- Cursor-Right "<CSI>C"
- Cursor-Left "<CSI>D"
- Shifted-Cursor-Up "<CSI>T"
- Shifted-Cursor-Down "<CSI>S"
- Shifted-Cursor-Right "<CSI> @"
- Shifted-Cursor-Left "<CSI> A"
- End (Keypad 1) "<CSI>K"
- Home (Keypad 7) "<CSI>H"
-
- Where <CSI> is one of "<esc>[", "<esc>O", or ASCII $9b.
-
-
- ANSI Used in Output
- -------------------
- Falcon, if the appropriate modes are on, uses the following set of ANSI
- codes (where "<CSI>" is presently "<esc>["):
-
- Basic ANSI FRED Msg General
- ----------------------------------------------------------
- <CSI><n>C move right n chars * *
- <CSI>H home * * *
- <CSI><r>H move to column 1, row r * *
- <CSI><r>;<c>H move to column c, row r *
- <CSI>K clear from cursor to eol * * *
- <CSI>J clear from cursor to eod * * *
- <CSI><???>m color/style * * *
-
- The <???> field in the color/style code can be zero or more of the
- following, separated by ";"'s:
-
- 0 ...... Reset
- 1 ...... Bold on
- 5 ...... Blink on
- 30-37 .. Change foreground color to n-30
- 40-47 .. Change background color to n-40
-
- (If anyone wants to know, the screen clear sequence I use is the following:
- "<ASCII 12><esc>[H<esc>[J" which works out to "formfeed, ANSI cursor-to-home
- code, ANSI clear-to-end-of-display code". That should clear ANY screen.)
-
- The following ANSI controls are not supported by all terminals. They are by
- any Amiga term which uses the console.device. Also JRComm (IBM-ANSI mode)
- for the Amiga, Telix for MS-DOS, and apparently ZTerm for the Macintosh.
- They are not required to use Falcon, but enhance its operation if you use
- certain modes.
-
- Special ANSI FRED Msg General
- ----------------------------------------------------------
- <CSI>M delete one line * *
- <CSI><n>M delete n lines *
- <CSI>L insert one line *
- <CSI><n>L insert n lines *
- <CSI>P delete one char *
- <CSI><n>P delete n chars *
- <CSI>@ insert one char *
- <CSI><n>@ insert n chars *
-
-
- Those "stat.dat" Files and the "systemstat.dat" File
- ----------------------------------------------------
- Each area/stat.dat file caches (saves) the values one sees upon entry to the
- Message menu. These include the number of messages and the highest message
- in that area. It also includes two highwater marks should an echomail
- processor ever decide to use them, and a fair deal of expansion space for
- later usage. The reason these values are cached is that is takes time to
- scan a directory to figure them out, especially if the program is running on
- floppies. Such a scan is only done if the directory has been modified since
- the stat.dat file was last written out.
-
- The systemstat.dat in the config directory holds the system's birthday,
- number of calls, last-user and current-user information, the most recent
- MSGID serial number and the number of messages entered to date. Don't
- delete it if you can help it.
-
-
-
- 16. FidoNet-Specific Technical Information
- ==========================================
-
- For people who care, and I imagine that excludes the majority of you, here
- are the ways Falcon supports various mail-related items:
-
- Quoting
- -------
- - New quotes are read in as lines a fair bit narrower than the usual
- screen width of 80 (I know, a magic number, how hideous). Then each
- line has a space, at most two initials, a '>', and another space added
- to the start. Blank lines are left alone.
- - Old quotes are left alone. As for identifying them, I look for a '>' in
- the first 6 characters of each line. Simplistic, but it works
- remarkably well. There is one exception: it is not a quote is there is
- a '<' before the '>', because "<grin>" is a common thing to find at the
- start of a line.
-
- Quoting a message from me with quotes from somebody else's message might
- look like this:
-
- (Left edge)
- |_______________________________________________________________
- |
- | > SE> So how do you quote?
- | >
- | > ^^^^^ Like this.
- |
- | SE> I hate your quoting style! You are such
- | SE> a moron!
- |
- | BF> It looks better than yours.
- |
- |I agree.
- |_______________________________________________________________
-
- I currently prepend a header, like so:
-
- "In a message dated Wed 12 Dec 90 04:49, Brian Fehdrau wrote:"
-
- I think I shall change that to:
-
- "On Wed 12 Dec 90 01:51, Brian Fehdrau wrote:"
- ^^^^^^ implies "to All"
-
- "On Wed 12 Dec 90 04:49, Brian Fehdrau wrote to Maximilian Hantsch:"
- ^^^^^^^^ not a reply
-
- "On 14 Dec 90 01:23:45, Maximilian Hantsch replied to Brian Fehdrau:"
- ^^^^^^^^^^ a reply
-
- ...and then again with a blank line, converting any original Fido two-space
- style datestamps ("dd mmm yy hh:mm:ss") to one space to save a little room
- (oh boy, one byte). ^^
-
- I still haven't done this, though.
-
-
- Netmail/Echomail Kludge/Control Lines
- -------------------------------------
- Falcon supports the following kludge lines:
-
- N E KLUDGE <parameters>
- - - ------------------------------------
- * FMPT OrigPoint
- * TOPT DestPoint
- * INTL Dest.3D Orig.3D
- * GATE: Dest.5D Orig.5D
- * * MSGID: Orig.?? SerialNumber.Hex8
- * * REPLY: Dest.?? SerialNumber.Hex8
- * MSGTO: Dest.5D
- * * PID: Falcon <version> <number>
-
-
- Notes on Kludges
- ----------------
- - .3D = Zone:Net/Node
- .5D = [Zone:]Net/Node[.Point][@Domain]
- .?? = Pretty much any kind of address. Usually a .5D address, but could
- very well be something like a UUCP site, like "weyr.fidonet.org".
- - Falcon can also read .5D as [Domain#][Zone:]Net/Node[.Point], but does
- not write them that way.
- - Falcon will write the minimum amount of a 5D address that it has to.
- Meaning, if it doesn't know the domain, it won't include one, and if the
- point is 0, it'll be omitted because that would be redundant (since
- "zone:net/node" is equal to "zone:net/node.0").
- - Falcon does not currently do its own packing. Therefore PATH lines
- aren't my problem.
- - Serial numbers generated by Falcon always increase. If you want to know
- exactly how they are determined, they are the C time() value (seconds
- since a certain date), and incremented by one if that value has already
- been used.
- - REPLY and MSGTO are mutually exclusive.
- - INTL's, FMPT's and TOPT's can have colons (ie. "INTL:") in them and
- Falcon can still read them. They will be written without, at least
- until FTS-0001 says otherwise. As a side note, any other keyword can be
- read without a colon, though this is probably not encouraged.
- - INTL's can be .5D addressed (like GATE) and Falcon can still read them.
- It will not, however, write them that way.
- - GATE is only included when the domains are both non-blank and do not
- match.
- - Presence of a GATE or MSGID/REPLY/MSGTO combination does not exclude
- INTL, FMPT, TOPT. And it won't until somebody declares them obsolete in
- favor of GATE/etc. A little redundancy won't hurt too much, whereas a
- message not getting to its destination might.
- - At the moment, I don't read origins to help find the originating node.
- This is due to laziness, not an actual decision, although I don't really
- trust origins anyway.
- - I do not intend to support EID and RID. MSGID and REPLY do the job
- better and easier.
- - I don't know if I'm doing GATE right. I don't know what the actual
- message (binary header) should be addressed to.
-
-
- Datestamps
- ----------
- Falcon supports two styles, configurable at run-time by the sysop.
-
- SEAdog: "Wkd dd Mmm yy hh:mm" ie. "Tue 1 Jan 91 01:23"
- Fido 11w: "dd Mmm yy hh:mm:ss" ie. "01 Jan 91 01:23:45"
-
-
-
- 17. Yet to Come
- ================
-
- o The setup needs to be modified into a server-program/client-program
- arrangement. You can probably run a multi-line system with Falcon, but
- there is no explicit support for it. I've tried to make message-saving
- robust enough to work with a multi-line setup, but two users saving a
- message at exactly the same time, give or take a quarter second, could
- probably still mess things up. Also, the message area stats could be
- obsolete occasionally for one line (actually, this is standard behaviour
- for some programs, but I'd rather do it right when I get to it).
- Therefore a server is required to track the number of messages and write-
- access to areas, not to mention other stuff line linking the lines for
- chats and so on. I've done some work on this, but none of it is actually
- in the program you have.
-
- o english.bbs is not complete. One time, when I was less busy, I started
- exporting strings from the program into this language file, which could
- then be replaced later with a different language. However, things came
- up and I only got a small amount of the text transferred. I'll work
- on it later. It's probably just as well, since the text came out of
- what is probably the only source file which doesn't change much anymore.
-
- o Aliases or Alias message areas. I'll either add an overall-alias to
- the user record, or perhaps just have Opus-style alias areas, where the
- user has the ability to enter the From: name of a message.
-
-
-
- 18. ICK! BUGS! (And other caveats)
- =====================================
-
- Some known bugs¹ and caveats as of 17 Sep 91:
-
- - Don't ARun the program under 2.0. ARun, I think only with the NOIO
- option set, messes up if the program tries to call the Execute()
- function. Messes up, as in Gurus. This is an ARun thing, not a
- Falcon thing, but I thought you should know.
- - Because of the ^A kludge lines written out when an echo or matrix
- message is saved, U)pdating such messages is currently not at all
- safe to do. Regular users are banned from doing it, and you should
- not do it either. I'm going to have to find some way to work
- around this. For the time being, you can do this if you need to
- edit an echo or matrix message: start a new message (enter or
- reply), import (^Q^F) the ???.msg file of the message to be updated,
- paste it in, kill the header and kludge lines (don't worry, the
- unprintable bits of the binary header didn't get read in), make any
- changes, save it, and delete the original. It's messy, but it has
- the desired effect. If you're calling from remote, just ASCII
- capture the message and re-upload it instead of importing it.
- - The first mouse click on the Falcon screen is supposed to be absorbed
- (as in MicroEmacs) so that the window can be activated without
- messing anything up. Sometimes the first click doesn't need to be
- absorbed, though, and that can lead to annoyance when your it-should-
- be-noticed-damn-it click doesn't do anything. But no harm is done.
- - Not really a bug, but the Bytes/sec field in an XPR _send_ can be
- awfully high, at least at first. This is because the output is
- buffered, and the entire first block _seems_ to XPR to have been
- sent out in the blink of an eye. So we're talking about 1024
- bytes/sec on a 2400 baud transfer in the first block. It'll smooth
- out as more blocks are sent, but it'll always be high. The after-
- transfer CPS rates shown underneath a terminal transfer and in the
- S)tatus command for a BBS transfer are more accurate. Unless you
- want clunky & chunky Zmodem transfers, this one won't be "fixed".
- - For some reason I haven't figured out yet (obviously), FTerm sometimes
- misses a short block of characters (like 5-10). Beats me why, but
- then again, I'm not really here to write a terminal anyway.
- - Download limits don't actually do anything (download capability is
- instead based on time). I no longer like the way I was originally
- going to do them, so they don't do anything just now.
- - Falcon disables DOS requesters so that disk-full errors and the like
- will simply return an error to Falcon without making it hang while it
- waits for a gadget click from the user. This is good, because it means
- your BBS will never lock up, but it's bad because a software error will
- always go straight to the blinking red alert instead of possibly going
- to the task-held-etc. requester. In other words, even a tame error like
- a divide by zero will take the entire system down. Now, Falcon is
- really quite clean, but it could die through no fault of its own, as
- another program could be randomly trashing memory which happens to
- belong to Falcon. Just so you know. There's nothing to be done,
- really. It's a problem every BBS program has.
-
-
- ¹ Some bugs are mentioned because they may be a while in being fixed.
- The rest are just to inform the new sysop of what I'm aware of.
-